Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
R

router-module

> 前端框架
Open source

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

394 stars0 likes0 views
WebsiteGitHub

About

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

@nuxtjs/router

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

Release Notes

Nuxt 3

This is now possible to extend vue-router with Nuxt 3 with different methods, learn more on https://nuxt.com/docs/guide/going-further/custom-routing

If you don't have the pages/ directory, make sure to enable Vue Router with:

export default defineNuxtConfig({
  pages: true
})

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

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

:warning: If you are using Nuxt < v2.9 you have to install the module as a dependency (No --dev or --save-dev flags) and use modules section in nuxt.config.js instead of buildModules.

Using top level options

export default {
  buildModules: [
    '@nuxtjs/router'
  ],
  routerModule: {
    /* module options */
  }
}

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

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

Options

path

  • Type: String
  • Default: srcDir

Location of you route file.

fileName

  • Type: String
  • Default: router.js

Name of you route file.

keepDefaultRouter

  • Type: Boolean
  • Default: false

Can access the default router.

parsePages

  • Type: Boolean
  • Default: 'keepDefaultRouter'

Can disable/enable the pages/ directory into Nuxt.

Usage

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

The components defined as routes have access to the same special attributes and functions (head, asyncData, validate, etc.) as the Nuxt Page component.

Accessing default router

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

:warning: If you are using Nuxt < 2.9.0, the parameter routerOptions is not available.

:warning: If you are using Nuxt < 2.15.0, the parameter config is not available.

:warning: If you are using Nuxt < 2.16.0, the parameter store is not available.

export function createRouter(ssrContext, createDefaultRouter, routerOptions, config, store) {
  const options = routerOptions ? routerOptions : createDefaultRouter(ssrContext, config).options

  return new Router({
    ...options,
    routes: fixRoutes(options.routes, store)
  })
}

function fixRoutes(defaultRoutes, store) {
  // default routes that come from `pages/`
  // Filter some routes using the content of the store for example
  return defaultRoutes.filter(...).map(...)
}

Development

  1. Clone this repository
  2. Install dependencies using yarn install or npm install
  3. Start development server using npm run dev

License

MIT License

Copyright (c) Nuxt Community

Issues· 30 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

TypeScriptnuxtnuxt-moduleroutervue-router

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category前端框架
PricingOpen source

> Related tools

R
React
用于构建用户界面的 JavaScript 库
V
Vue.js
渐进式 JavaScript 框架
N
Next.js
基于 React 的全栈 Web 框架