路由的概念来自于后端,前端没有正真的路由,仅仅是模拟实现。
为什么要使用路由?
因为当我们的前端项目比较复杂、页面文件较多,通过传统 a 标签跳转同步页面,会导致页面白屏、闪白、响应不及时,用户体验较差、代码不易维护。
通过解析浏览器地址栏参数,根据路由参数,局部重绘页面视图,结合 innerHTML、appendChild,异步操作请求数据来局部更新我们的页面。
分类
- hash 哈希(/#/<路由名称>)不会向服务器发起请求
- history 历史 (/<路由名称>) 会向服务器发起请求
路由参数
| name | 路由名称 |
| |
| —- | ——– |
| path | 路由路径 |
|
| component | 路由组件 |
|
| meta | 路由信息对象 |
|
| alias | 路由别名 |
|
| redirect | 路由重定向 |
|
| * | 通配符 |
|
配置路由
项目较大或者页面较多,为了提升组件加载速度,通过按需加载路由组件提升性能
router/routes.js
1 | const routes = [ |
router/index.js
1 | import Vue from "vue"; |
路由 404
router/routes.js
1 | { |
全局导航守
1 | const router = new VueRouter(); |
路由独享的守卫 beforeEnter
router/routes.js
1 | const routes = [ |
组件内的守卫
views/somepage.vue
1 | <script> |
路由传参
- path+query
- name+params
- 动态路由传参
I'm so cute. Please give me money.
- Post link: https://blog.gaocaipeng.com/2020/04/16/gep3xq/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.