Vue:二级路由,导航守卫(导航钩子)

 二级路由,导航守卫(导航钩子):

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'

Vue.use(VueRouter)

const routes = [{
    path: '/',
    name: 'home',
    component: Home,
  },
  {
    path: '/about',
    name: 'about',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import( /* webpackChunkName: "about" */ '../views/About.vue'),
    children: [{
        path: "/about/",
        name: "about1",
        component: () => import("../views/About1.vue")
      },
      {
        path: "/about/about2",
        name: "about2",
        component: () => import("../views/About2.vue"),
        // 路由独享的守卫
        // 用法与全局守卫一致。只是,将其写进其中一个路由对象中,只在这个路由下起作用。
        beforeEnter: (to, from, next) => {
          console.log("想要进到about2页面啊");
          next();
        }
      }
    ]
  },
  {
    path: "/setting",
    name: "setting",
    component: () => import("../views/Setting.vue")
  }
]

const router = new VueRouter({
  routes
})

export default router


// Vue 路由 导航守卫(导航钩子)(全局守卫、路由独享守卫、组件内守卫)
// 全局守卫:直接挂载在router实例上
router.beforeEach(function (to, from, next) {
  // 回调函数中的参数,to:进入到哪个路由去,from:从哪个路由离开,next:函数,决定是否展示你要看到的路由页面。
  console.log(to);
  console.log(from);
  next();
})
router.beforeResolve(function (to, from, next) {
  next();
})

// 全局后置钩子
router.afterEach(function (route) {
  console.log(route);
})

组件内的守卫(导航守卫):

<template>
  <div class="setting">
    <h1>This is a setting page</h1>
    <p>{{test}}</p>
  </div>
</template>

<script>
export default {
  data(){
    return{
      
    }
  },
  // 组件内的守卫
  beforeRouteEnter (to, from, next) {
    console.log("想要进到setting页面了");
    next(vm=>{
      console.log(vm);
      vm.test = "修改后的数据";
    });
  },
  beforeRouteLeave (to, from, next) {
    console.log("从setting页面离开了");
  }
}
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值