Newline Proliferating Maniac
    Have ideas to improve npm?Join in the discussion! »

    @nuxtjs/router
    TypeScript icon, indicating that this package has built-in type declarations

    1.6.1 • Public • Published

    @nuxtjs/router

    npm version npm downloads Github Actions CI Codecov License

    Nuxt.js module to use router.js instead of pages/ directory

    📖 Release Notes

    Features

    Use your own router.js to handle your routes into your Nuxt.js application.

    Setup

    1. Add @nuxtjs/router dependency to your project
    yarn add --dev @nuxtjs/router # or npm install --save-dev @nuxtjs/router
    1. Add @nuxtjs/router to the buildModules section of nuxt.config.js
    export default {
      buildModules: [
        // Simple usage
        '@nuxtjs/router',
    
        // With options
        ['@nuxtjs/router', { /* module options */ }]
      ]
    }

    ⚠️ If you are using Nuxt < v2.9 you have to install the module as a dependency (No --dev or --save-dev flags) and use modules section in nuxt.config.js instead of buildModules.

    Using top level options

    export default {
      buildModules: [
        '@nuxtjs/router'
      ],
      routerModule: {
        /* module options */
      }
    }

    If you are using SPA mode, add an index / route to generate section of nuxt.config.js:

    export default {
      generate: {
        routes: [
          '/'
        ]
      }
    }

    Options

    path

    • Type: String
    • Default: srcDir

    Location of you route file.

    fileName

    • Type: String
    • Default: router.js

    Name of you route file.

    keepDefaultRouter

    • Type: Boolean
    • Default: false

    Can access the default router.

    parsePages

    • Type: Boolean
    • Default: 'keepDefaultRouter'

    Can disable/enable the pages/ directory into Nuxt.

    Usage

    This module, by default, disable the pages/ directory into Nuxt and will use a router.js file at your srcDir directory:

    components/
      my-page.vue
    router.js

    router.js need to export a createRouter method like this:

    import Vue from 'vue'
    import Router from 'vue-router'
    
    import MyPage from '~/components/my-page'
    
    Vue.use(Router)
    
    export function createRouter() {
      return new Router({
        mode: 'history',
        routes: [
          {
            path: '/',
            component: MyPage
          }
        ]
      })
    }

    The components defined as routes have access to the same special attributes and functions (head, asyncData, validate, etc.) as the Nuxt Page component.

    Accessing default router

    If you use the module with { keepDefaultRouter: true }, you can access the default router:

    ⚠️ If you are using Nuxt < 2.9.0, the parameter routerOptions is not available.

    ⚠️ If you are using Nuxt < 2.15.0, the parameter config is not available.

    export function createRouter(ssrContext, createDefaultRouter, routerOptions, config) {
      const options = routerOptions ? routerOptions : createDefaultRouter(ssrContext, config).options
    
      return new Router({
        ...options,
        routes: fixRoutes(options.routes)
      })
    }
    
    function fixRoutes(defaultRoutes) {
      // default routes that come from `pages/`
      return defaultRoutes.filter(...).map(...)
    }

    Development

    1. Clone this repository
    2. Install dependencies using yarn install or npm install
    3. Start development server using npm run dev

    License

    MIT License

    Copyright (c) Nuxt Community

    Keywords

    none

    Install

    npm i @nuxtjs/router

    DownloadsWeekly Downloads

    14,472

    Version

    1.6.1

    License

    MIT

    Unpacked Size

    14.6 kB

    Total Files

    7

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar