🚦Future-Oriented vue routing system
Please consider starring the project to show your ❤ and support.
- Dynamic routing system
$id.vue - Support props mode
{id}.vue - Auto add new route to routes map, free you hands!
For details see routing convertion
yarn add vue-auto-routesWe assume your directory looks like this:
src
└── views
├── index.vue
└── about.vue
webpack.config.js # basic webpack project
vue.config.js # create by vue/cliIn your webpack.config.js:
const VueAutoRoutes = require('vue-auto-routes/plugin')
module.exports = {
plugins: [
new VueAutoRoutes({
dir: 'src/views'
})
]
}Or in your {poi,vue}.config.js:
const VueAutoRoutes = require('vue-auto-routes/plugin')
module.exports = {
chainWebpack(config) {
config.plugin('auto-routes').use(VueAutoRoutes, [
{
dir: 'src/views'
}
])
}
}Then in your router.js:
import { routes } from 'vue-auto-routes'
// v3
export default new VueRouter({ routes })
// v4
export const router = createRouter({
routes
})// index.vue -> /
// about.vue -> /about
// user.vue -> /user
// user/index.vue -> /user, child ''
// user/friends.vue -> /user, child 'friends'
// catalog/index.vue -> /catalog
// catalog/specials.vue -> /catalog/specials
// $path.vue -> /:path
// _path.vue -> /:path // !!deprecated!!
// {path}.vue -> /:path props: true
// 404.vue -> *new VueAutoRoutes(options)
Since v1.1.11 options for @ream/collect-fs-routes v1.0.2, but differences with these following
- Type:
string - Required:
true
Routes directory, e.g. src/views.
- Deprecated
- Type:
boolean - Default:
false
Now we recognize v4 automatically. Do not need this anymore.
Vue router next See migration.
- Type:
stringRegExp - Default:
'vue'/\.vue$/
It used to match page components.
We use , to split match file extension when is a string.
- Type:
boolean - Default:
trueinwebpack-dev-serverandwebpack-dev-middleware,falseotherwise
Watching pages directory to auto update routes.
- Type:
boolean - Default:
true
Use internal 404 page for mismatch route. You can create a 404.${match} in your dir to instead of it or set it false.
@ream/collect-fs-routes Offical usage like.
const {
collectRoutes,
renderRoutes
} = require('vue-auto-routes/lib/collect-fs-routes')
const routes = await collectRoutes(options)
const routesString = renderRoutes(routes)Options for options
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request :D
vue-auto-routes © evillt, Released under the MIT License.
Authored and maintained by EVILLT with help from contributors (list).
