Vue 路由相关 2022-01-17

$router 可以设置路由

$route 只可以读取路由信息

如果要在路由中自定义路由信息的标识,可以在每个路由中通过设置meta(元数据)属性来配置,如: meta: {

    num: 0

}

路由拦截/路由导航守卫

// 路由拦截/路由导航守卫(在路由这个文件里面写),路由导航守卫:前置导航守卫和后置导航守卫

// 三个参数

// to代表即将进入的路由

// from代表即将离开的路由

// next(),每一个导航守卫必须至少搭配一个next(),符合条件后只有调用next()才会进行跳转,否则会一直卡在没跳转那个地方

router.beforeEach((to, from, next) => {

  // 想要进入购物车页面,必须有token

  // console.log('to:', to)

  // console.log('from:', from)

  const token = localStorage.getItem('token')

  if (to.path === '/cart') {

    // 此时必须要有token

    if (token) {

      // 这个next()是只针对cart路由的

      next()

    } else {

      vm.$toast('请先登录!')

      // 定时器

      setTimeout(() => {

        next('/user')

      }, 1000)

    }

    return false

  }

  // 下方这个next()是适配所有路由的

  next()

})

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Vue真是太好了 壹万多字的Vue知识点 超详细! 9 ️1⃣️、Vue和其他两大框架的区别 Angular 学习...
    三千繁夢阅读 349评论 0 0
  • hash和history模式的设定 router-link 其实就是导航,根据to属性去匹配对应的组件,然后渲染到...
    谷子多阅读 577评论 0 1
  • 配置 如果在一个模块化工程中使用它,必须要通过Vue.use()明确地安装路由功能: 基础 Getting Sta...
    回调的幸福时光阅读 551评论 0 0
  • 生命周期 // 创建之前,在beforeCreate生命周期执行的时候,data和methods中的数据都还没有初...
    人在胖天在看_640c阅读 2,294评论 1 28
  • 1. 组件的data为什么必须是函数? 组件中的 data 写成一个函数,数据以函数返回值形式定义,这样每复用一次...
    郭先生_515阅读 1,006评论 0 12