• Vue中的路由守卫


    路由守卫

    在某些情况下,当路由跳转前或跳转后、进入、离开某一个路由前、后,需要做某些操作,就可以使用路由钩子来监听路由的变化

    全局路由钩子:

    //进入到某个路由组件之前
    router.beforeEach((to, from, next) => {
    	//会在任意路由跳转前执行,next一定要记着执行,不然路由不能跳转了
      console.log('beforeEach')
      console.log(to,from)
      next()
    })
    
    //进入到某个路由组件之后
    router.afterEach((to, from) => {
        //会在任意路由跳转后执行
      console.log('afterEach')
    })
    

    单个路由钩子:

    只有beforeEnter,在进入前执行,to参数就是当前路由

     routes: [
        {
          path: '/foo',
          component: Foo,
          //当进入到foo路由之前,就会触发
          beforeEnter: (to, from, next) => {
            // ...
            next() //必须要执行next之后,对应的Foo组件才可以正常显示出来
          }
        }
      ]
    

    路由组件钩子:

      //进入到某个组件之前的拦截,获取不到组件内部的this
      beforeRouteEnter (to, from, next) {
        // 在渲染该组件的对应路由被 confirm 前调用
        // 不!能!获取组件实例 `this`
        // 因为当守卫执行前,组件实例还没被创建
      },
      
      beforeRouteUpdate (to, from, next) {
        // 在当前路由改变,但是该组件被复用时调用     
        // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
        // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
        // 可以访问组件实例 `this`
      },
      
      //离开某个组件之前的拦截,获取到组件内部的this
      beforeRouteLeave (to, from, next) {
        // 导航离开该组件的对应路由时调用
        // 可以访问组件实例 `this`
      }
    
    
  • 相关阅读:
    java 日期格式 毫秒 表示方法
    Java的框架是什么意思
    圣思源Java视频36节练习源码分享(自己的190+行代码对比老师的39行代码)
    预装win8的笔记本如何重装win7
    Word 2013 无法撤销操作的错误
    面试经验分享(跳槽季~~~❀)
    一些可能有点用处的C#开发经验
    电子设计解决方案透视
    突破限速
    当区块链遇上Rust
  • 原文地址:https://www.cnblogs.com/Mine-/p/14098614.html
Copyright © 2020-2023  润新知