判断方式应该有很多,但是我感觉最简单的方式,也是我项目中采用的方式:

定义全局跳转和返回函数,直接“接管”Vue路由的前进和后退事件:

//注册全局方法

Vue.prototype.push = (url: string, closeTransition: boolean = false) => {
    //前进
    Vue.prototype.transitionName = "slide-left";
    this.$router.push(url);
};

Vue.prototype.pop = (n: number = -1, closeTransition: boolean = false) => {
    //后退
    Vue.prototype.transitionName = "slide-right";

    let path = this.$router.currentRoute.path;
    if (path == "/") {
        return;
    }
    this.$router.go(n);
};

判断前进后退主要是为了移动端跳转页面时加切换动效。 

页面中调用:

this.push("home");

this.pop();

20191017

之前对Vue.prototype好像有点误解。

引用网上的文章和大神的回复:

https://segmentfault.com/q/1010000009992656

Logo

前往低代码交流专区

更多推荐