Skip to content

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

License

Notifications You must be signed in to change notification settings

VeeeneX/router-module

 
 

Repository files navigation

@nuxtjs/router

npm version npm downloads Circle CI Codecov License

Nuxt 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 @nuxtjs/router # or npm install @nuxtjs/router
  1. Add @nuxtjs/router to the modules section of nuxt.config.js
{
  modules: [
    // Simple usage
    '@nuxtjs/router',

    // With options
    ['@nuxtjs/router', { /* module options */ }]
  ]
}

Using top level options

{
  modules: [
    '@nuxtjs/router'
  ],
  routerModule: {
    /* module options */
  }
}

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

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

Options

path

  • Default: srcDir

Location of you route file.

fileName

  • Default: router.js

Name of you route file.

keepDefaultRouter

  • Default: false

Can access the default router.

Usage

This module 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
      }
    ]
  })
}

Accessing default router

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

export function createRouter(ssrContext, createDefaultRouter) {
  const defaultRouter = createDefaultRouter(ssrContext)
  return new Router({
    ...defaultRouter.options,
    routes: fixRoutes(defaultRouter.options.routes)
  })
}

function fixRoutes(defaultRoutes) {
  // default routes that come from `pages/`
  return defaultRoutes.filter(...).map(...)
}

License

MIT License

Copyright (c) Nuxt Community

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 94.6%
  • Vue 5.4%