编程式路由导航
通过点击按钮实现push和replace俩种模式的跳转
实现:就是通过$router原型里面的方法
也能实现路由的跳转和后退,分别采用的是$router里面的black和forward方法
感觉就是BOM对象中的history对象里面的方法
正是前进,后是后退
总结:
作用:不借助 ``<router-link> ``实现路由跳转,让路由跳转更加灵活
具体编码:
//$router的两个API
this.$router.push({
name:'xiangqing',
params:{
id:xxx,
title:xxx
}
})
this.$router.replace({
name:'xiangqing',
params:{
id:xxx,
title:xxx
}
})
this.$router.forward() //前进
this.$router.back() //后退
this.$router.go() //可前进也可后退
缓存路由组件
意思就是切换到Message组件时,还保留着input框内容
因为是组件切换,它被销毁了,需要重新渲染
如果不想要它被销毁,只需用keep-alive包含组件,当然如果不添加include,它会把所有的组件都保留下来,这大可不必,因此通过添加include,把需要的组件保留下来
这里要注意的是保留的是组件名不是路由名
总结
作用:让不展示的路由组件保持挂载,不被销毁。
<keep-alive include="News">
<router-view></router-view>
</keep-alive>
如果要缓存多个组件,可以写成数组的形式
俩个新的生命周期钩子
activated() 和deactivated()这个是路由组件独有的生命周期。它就是News组件显示到你面前就是激活,切换到message组件,它就失活
总结:
* 作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态。
* 具体名字:
1. ``activated``路由组件被激活时触发。
2. ``deactivated``路由组件失活时触发。