现在很多人还是在默默的一个个功能页去配置管理路由, 目录管理 -> 导入.vue 文件 -> 路由配置 -> 页面上应用. 当应用越来越大, 这一套流程的管理会变得越来越繁杂和臃肿. 修改起来也特别麻烦.
假如某文件夹下的目录能自动生成对应路由那就方便多了. 即假如我在 page 文件下添加 a.vue 文件, 那么我就可以从 http://localhost:8080/#/page/a 中访问到该组件. 我不用再去 router.js 那里 import 组件并配置路由路径.
想要实现这个功能主要有两个知识点, 一个是动态路由, 一个是动态组件.
动态路由:
1 | const router = new VueRouter({ |
this.$route.params.path 可以获取到 path 参数
动态组件:
1 | <component v-bind:is="name"></component> |
:is 是动态组件的用法, 当 name 变化, 组件就会发生变化.
所以我们可以在动态组件中实时计算路由变化.
1 | // 需要使用 vue-async-computed 插件 |
组件就会根据 path 改变自动改变
简化的主要流程:
动态路由监听路由变化
浏览器输入
http://localhost:8080/#/page/a, 路由发生变化this.$route.params中获取动态路由的参数, 发现动态路由的参数为a动态组件中导入
page文件下的a.vue文件动态组件更新, 渲染到页面