spa-auto-route
Usage
- import spa-auto-route;;
- generate routes;const routes = ;
- put the routes into vue-router.mode: 'history'base: ROUTER_PREFIXroutes:...routes;
API
autoRoute(requiredFiles, excludeRegExp)
- requiredFiles: must be generated by require.context
- excludeRegExp: files path RegExp which you don't want to put into router
- if a route has nested routes(multi-level nesting is supported), you should demostrate them in vue instance:nestedRoutes:// the string is child route folder name(case sensitive).'childRoute1''childRoute2'name: 'AFatherRoute'{return...;}
- when use nestedRoutes, you can alse write a 'redirect' propertynestedRoutes:// the string is child route folder name(case sensitive).'childRoute1''childRoute2'// you'd better use a component's name rather than a path, because path may be modified occasionally. And name is shorter than path!redirect:name: 'AllotBillHome'// or// redirect: 'path/to/fatherroute/childroute2',name: 'AFatherRoute'{return...;}
- You can add a 'alias' property in componentname: 'ARoute'alias: 'a/route/anthor/name'// multiple aliasesalias: '/xxx' 'yyy'{return...;}
- You can add a 'routeMeta' in component, it's meta property in vue-routername: 'ARoute'alias: 'a/route/anthor/name'// multiple aliasesrouteMeta:requiresAuth: true{return...;}
Tips
- in spa-auto-route file path is router path accurately, so organize your folders reasonably;
- route'name is token from vue instance's name, please make sure that every vue component has a unique name;
- routes which nest other child routes should be flat with child routes, like this:├── configjs├── fatherRoutevue├── childRoute1│ └── indexvue│ └── configjs├── childRoute2│ └── indexvue│ └── configjs