@ax2/router

2.0.0 • Public • Published

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 seb@chopin.io

Readme

Keywords

none

Package Sidebar

Install

npm i @ax2/router

Weekly Downloads

1

Version

2.0.0

License

MIT

Unpacked Size

6.26 kB

Total Files

5

Last publish

Collaborators

  • ax2-owner