1.vue-router 怎么重定向页面?
- 路由中配置 redirect 属性
- 使用路由的别名来完成重定向
2.vue-router 怎么配置 404 页面?
path: '*'
,放在最后一个
3.切换路由时,需要保存草稿的功能,怎么实现呢?
- beforeDe
- beforeRouteLeave
4.vue-router 路由有几种模式?说说它们的区别?
hash 模式的特点
history 模式的特点
5.说说你对 router-link 的了解
vue-router 插件的其中一个组件, 用于跳转路由, 类似于 a 标签, 它一般也会渲染成 a 标签, 但是可以通过 tag 来变更默认渲染元素, 通过 to 来跳转
6.切换到新路由时,页面要滚动到顶部或保持原先的滚动位置怎么做呢?
滚动到顶部:在 new Router()的时候,配置
scrollBehavior(to, from, savedPosition) {
return { x: 0, y: 0 }
}
7.如何获取路由传过来的参数?
如果使用 query 方式传入的参数使用 this.$route.query 接收
如果使用params方式传入的参数使用this.$router.params 接收
8.说说 active-class 是哪个组件的属性?
active-class 是 vue-router 模块的 router-link 组件中的属性,用来做选中样式的切换;
9.在 vue 组件中怎么获取到当前的路由信息?
this.$route.path / this.$route
10.怎样动态加载路由?
router.addRoutes
11.怎么实现路由懒加载呢?
import 异步加载const component = () =>import('./....')
12.说说 vue-router 完整的导航解析流程是什么?
- 导航被触发;
- 在失活的组件里调用 beforeRouteLeave 守卫;
- 调用全局 beforeEach 守卫;
- 在复用组件里调用 beforeRouteUpdate 守卫;
- 调用路由配置里的 beforeEnter 守卫;
- 解析异步路由组件;
- 在被激活的组件里调用 beforeRouteEnter 守卫;
- 调用全局 beforeResolve 守卫;
- 导航被确认;
- 调用全局的 afterEach 钩子;
- DOM 更新;
- 用创建好的实例调用 beforeRouteEnter 守卫中传给 next 的回调函数。
13.route 和 router 有什么区别?
route 代表当前路由对象,router 代表整个 vue 实例下的路由对象
14.vue-router 钩子函数有哪些?都有哪些参数?
beforeEach,afterEach
beforeEach 主要有三个参数,to,form,next