知识点小结
1、动态路由匹配: params匹配、全部匹配、正则匹配、优先级匹配。
2、嵌套路由: 通过组件嵌套router-view同时路由嵌套children。
3、编程式History控制: router.push()、.replace()、.go()(声明式是在router-view标签中定义的,编程式则仿照window.history API)。 histroy模式需要后端配合,如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。
4、query与params路由传参: query是通过 /path?a=1&b=2 的格式进行传参的,params是通过 /user/:a/:b 的格式进行传参的 query传参可以通过name也可以通过path,params传参只能通过name。
5、同一文件多个router-view: 在router-view中使用不同的name区分,默认为default。
6、重定向和别名: 重定向-redirect,别名-alias
7、props属性传参: 路由中设置props属性进行传参 布尔模式:props为true,匹配的route.params自动设置为组件属性。 对象模式:props为对象,其中设置的值会设置为组件属性。(静态) 函数模式:props为箭头函数,返回对象为组件属性。(动态)
8、路由守卫 顺序:前置、解析、钩子。 范围:全局、路由、组件。
9、matched与meta 一个路由匹配到的所有路由记录会暴露为 $route 对象 的 $route.matched 数组。meta为路由元信息。通过遍历matched处理meta可以实现面包屑。
10、动画 router-view外嵌套transition,设置transition属性name可以实现动画效果。
11、监听路由 可以直接在watch中监听 '$route' ,此监听同样可以接受to、from参数。
12、滚动 Router 实例可以提供一个 scrollBehavior 方法控制滚动。
13、路由懒加载
三种方式:vue异步组件、import()、webpack语法。14、导航故障
未按预期跳转的路由会进入导航故障中,在这里可以进行一定的处理。