zoukankan      html  css  js  c++  java
  • vue中实现页面的拦截、跳转、判断

    1,全局前置守卫:beforeEach

    const router =new Router({……});
    router.beforeEach((to, from, next) => {
     
    });

    2,全局后置守卫:afterEach

    3,路由独享的钩子函数(路由守卫):beforeEnter

    在配置路由的时候直接定义beforeEnter守卫,跳转到这个路由时候才会执行
    const router = new VueRouter({
      routes: [
        {
          path: '/foo',
          component: Foo,
          beforeEnter: (to, from, next) => {
            // ...
          }
        }
      ]

    4 组件内的钩子函数(组件守卫)
    直接写在单个vue文件中的中,写的位置跟mounted之类的钩子函数同级别。参数都是to、from、next

    4.1 beforeRouteEnter
    作用:在渲染该组件对应的路由被confirm前调用,

    注意:这时候该组件的this不能使用,因为组件实例还没被创建。

    4.2 beforeRouteUpdate
    作用:当前路由改变,但是该组件被复用时候调用,举例来说,对于三级导航,一个带有动态参数的路径/index/id,在/index/1和 /index/2之间跳转的时候,由于会渲染同样的index组件,因此该组件会被复用,而这个钩子会就再复用的时候调用。

    注意:可以使用组件的实力this

    4.3 beforeRouteLeave
    作用:导航离开该组件对应的路由时调用

    5,单个vue文件中,设置监听

     watch: {
            $route: {
                handler: function(val, oldVal){
                    if(oldVal.path== "/map"){
                    // this.$refs.tclb.closeDrawer()
                    this.drawer=false;
                    }
                    if(val.path== "/map"){
                        document.getElementById("tclb_container").style.display="block";
                         this.getParams();
                    //this.drawer=false;
                    }
                    
                },
                
                // 深度观察监听
                // deep: true
            },
           // "$route":"getPath" // 监听事件
      },
  • 相关阅读:
    mysql基础
    EM算法总结
    机器学习之PCA(1)
    C语言socket编程<二>
    计算机网络·实验一:
    机器学习之GMM-EM
    C语言socket编程<一>socket之Winsock API
    【翻译】java-TCP-socket网络编程2
    【翻译】java-TCP-socket网络编程1
    【翻译】Java IO 关系总览和整理
  • 原文地址:https://www.cnblogs.com/shuihanxiao/p/15302759.html
Copyright © 2011-2022 走看看