2.0.0 • Published 7 years ago
@ax2/router v2.0.0
Nuxt Router Module
Nuxt module to use router.js instead of pages/ directory
Features
Use your own router.js to handle your routes into your Nuxt.js application.
Setup
- Install
@nuxtjs/routerdependency withyarnornpminto your project - Add
@nuxtjs/routertomodulessection ofnuxt.config.js:
{
modules: [
'@nuxtjs/router'
]
}or
{
modules: [
['@nuxtjs/router', { keepDefaultRouter: true }]
]
}- If you are using SPA mode, add an index
/route togeneratesection ofnuxt.config.js:
{
generate: {
routes: [
'/'
]
}
}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.jsrouter.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:
import { createRouter as createDefaultRouter } from './defaultRouter'
export function createRouter(ssrContext) {
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
Copyright (c) Sebastien Chopin seb@chopin.io
2.0.0
7 years ago