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

wambo-co/router-module

 
 

Repository files navigation

Nuxt Router Module

npm (scoped with tag) npm CircleCI Codecov

js-standard-style

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. Install @nuxtjs/router dependency with yarn or npm into your project
  2. Add @nuxtjs/router to modules section of nuxt.config.js:
{
  modules: [
    '@nuxtjs/router'
  ]
}

or

{
  modules: [
    ['@nuxtjs/router', { keepDefaultRouter: true }]
  ]
}
  1. If you are using SPA mode, add an index / route to generate section of nuxt.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.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:

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

MIT License

Copyright (c) Sebastien Chopin [email protected]

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 91.3%
  • Vue 8.7%