Nuxt Router Module
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
- Add
@nuxtjs/router
dependency with yarn
or npm
into your project - Add
@nuxtjs/router
to modules
section of nuxt.config.js
: - Configure it:
{
modules: [
'@nuxtjs/router'
]
}
or
{
modules: [
['@nuxtjs/router', { keepDefaultRouter: true }]
]
}
If you are using SPA mode, add an index /
route to generate
section of nuxt.config.js
:
{
generate: {
routes: [
'/'
]
}
}
Options
path
Location of you route file.
fileName
Name of you route file.
keepDefaultRouter
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) {
return defaultRoutes.filter(...).map(...)
}
License
MIT License
Copyright (c) Nuxt Community