zoukankan      html  css  js  c++  java
  • vue之router钩子函数

    钩子函数可以分为三大类:

    一。全局导航钩子函数

     1.router.beforeEach(全局前置守卫)

    应用场景:可进行一些页面跳转前处理,例如判断需要登录的页面进行拦截,做登录跳转!!

    它的三个参数:

    to: (Route路由对象) 即将要进入的目标 路由对象 to对象下面的属性: path params query hash fullPath matched name meta(在matched下,但是本例可以直接用)

    from: (Route路由对象) 当前导航正要离开的路由

    next: (Function函数) 一定要调用该方法来 resolve 这个钩子。 调用方法:next(参数或者空) ***必须调用

    2. router.afterEach(全局后置守卫)

    router.afterEach有两个参数:to/from

    二。路由独享的守卫(路由内钩子)

    beforeEnter

    beforeLeave

    const router = new VueRouter({
      routes: [
        {
          path: '/foo',
          component: Foo,
          beforeEnter: (to, from, next) => {
            // ...
          }
        }
      ]
    这些守卫与全局前置守卫的方法参数是一样的。

    三。组件内的守卫(组件内钩子)

    beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave

    const Foo = {
      template: `...`,
      beforeRouteEnter (to, from, next) {
        // 在渲染该组件的对应路由被 confirm 前调用
        // 不!能!获取组件实例 `this`
        // 因为当钩子执行前,组件实例还没被创建
      },
      beforeRouteUpdate (to, from, next) {
        // 在当前路由改变,但是该组件被复用时调用
        // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
        // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
        // 可以访问组件实例 `this`
      },
      beforeRouteLeave (to, from, next) {
        // 导航离开该组件的对应路由时调用
        // 可以访问组件实例 `this`
    
      }
  • 相关阅读:
    BZOJ4827: [Hnoi2017]礼物(FFT 二次函数)
    洛谷P3586 [POI2015]LOG(贪心 权值线段树)
    BZOJ4373: 算术天才⑨与等差数列(线段树 hash?)
    cf711D. Directed Roads(环)
    洛谷P3313 [SDOI2014]旅行(树链剖分 动态开节点线段树)
    洛谷P2045 方格取数加强版(费用流)
    cf900D. Unusual Sequences(容斥 莫比乌斯反演)
    agc007D
    hdu 4287Intelligent IME(简单hash)
    Python Post and Get 登陆web后台系统并抓取页面
  • 原文地址:https://www.cnblogs.com/jiaqi1719/p/11338434.html
Copyright © 2011-2022 走看看