前言: 公司项目使用的是react,最近比较闲,所以打算用vue来写一下。 在写切换动画的时候,发现监听路由变化的时候并不会像react那样会告诉你这个跳转是push 还是back.查看一下vue的官方文档。如下所示。但这并不能解决我的问题。
// watch $route 决定使用哪种过渡
watch: {
'$route' (to, from) {
const toDepth = to.path.split('/').length
const fromDepth = from.path.split('/').length
this.transitionName = toDepth < fromDepth ? 'slide-right' : 'slide-left'
}
}
解决思路;我将页面所有的路由存在sessionStorage中,当路由变化时判断该路由是否已存在,存在就当返回,并清除中间路由,如不存在就当是push操作。下面看代码
watch: {
'$route'(to, from)
{
let routersArr=sessionStorage.getItem('routers')&&sessionStorage.getItem('routers').split(',')||[];
if(routersArr.length==0){
routersArr.push(from.path)
routersArr.push(to.pa