vue路由的实现
前端路由就是更新视图,但不请求页面。
利用锚点完成切换,页面不会刷新,官网推荐用vue-router.js来引入路由模块
定义路由,使用component进行路由映射组件,用name导航到对应路由。
创建router实例,传入routes配置,创建和挂载根实例,用router-link设置路由跳转。
vue中路由跳转方式(声明式/编程式)
Vue 中路由跳转有两种,分别是声明式和编程式
用 js 方式进行跳转的叫编程式导航 this.$router.push()方法
用 router-link 进行跳转的叫声明式 router-view 路由出口,路由模板显示的位置
路由中 name 属性有什么作用?
在 router-link 中使用 name 导航到对应路由
使用 name 导航的同时,给子路由传递参数
Route和router的区别
- router是
VueRouter的一个对象,通过Vue.use(VueRouter)和VueRouter构造函数得到一个router的实例对象,这个对象中是一个全局的对象,他包含了所有的路由包含了许多关键的对象和属性。 - route是个跳转的路由对象,每个路由都会有一个route对象,是一个局部对象,可以获取对应的name,path,params,query等
说说vue路由传参的两种方式(params和query)区别
动态路由也可以叫路由传参,就是根据不同的选择在同一个组件渲染不同的内容。
用法上:query用path引入,params用name引入,接收参数都是类似的,分别是this.route.params.name
url展示上:params类似于post,query类似于get,也就是安全问题,params传值相对更安全点,query通过url传参,刷新页面还在,params刷新页面就不在了。
vue的路由钩子函数/路由守卫有哪些?
- 全局守卫:beforeEach(to,from,next)和afterEach(to, from)
- 路由独享守卫:beforeEnter
- 组件内的守卫:路由进入/更新/离开之前 =》beforeRouterEnter/update/leave
对vue中keep-alive的理解
概念:keep-alive 是 vue的内置组件,当它动态包裹组件时,会缓存不活动的组件实例,它自身不会渲染成一个DOM元素也不会出现在父组件链中
作用:在组件切换过程中将状态保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验。
生命周期函数:Activated在keep-alive组件激活时调用,deactivated在组件keep-alive组件停用时调用。