美文网首页vue
vue中的路由的那些事

vue中的路由的那些事

作者: 该帐号已被查封_才怪 | 来源:发表于2018-06-05 11:45 被阅读513次

一、导航守卫

1、全局守卫
router.beforeEach


image.png

router.beforeEach 很常用,比如验证用户的token等;

这里需要注意的是,一定要确保调用next方法,否则钩子不会被resolved

2、全局解析守卫
router.beforeresolve
在 2.5.0+ ,新增的全局解析守卫,和router.beforeEach 类似,区别是 同时在所有组件内守卫和异步路由被解析之后,解析守卫就被调用

3、全局后置钩子

router.afterEach((to,from)=>{
})

这里的钩子不会接受next函数 也不会改变导航本身

4、路由独享的守卫
我们可以在路由的配置文件index.js 上定义beforeEnter 守卫

image.png

这个比较常用,比如在用户进入组件前 验证他的权限、或者获取各个组件都需要用到的数据等

5、组件内的守卫
beforeRouteEnter、beforeRouteUpdate (2.2 新增--因为参数或者查询导致路由的改变不会触发 进入或者离开的导航守卫,所以新增了这个,当然也可以使用watch $route 对象来应对变化) 、 beforeRouteLeave

顾名思义,这三个是在组件中使用,其中beforeRouteLeave 比较实用,比如用户填写信息未完成要离开的时候 我们可以给他警告;

  export default {
    beforeRouteLeave(to, from, next) {
      if (confirm('你确定离开?')) {
        next(true)
      } else {
        next(false) // next 里的false表示 中断当前的导航 如果url改变了 就会重置到from路由对应的地址
      }
    },
}

二、路由懒加载技术

//官方写法
const app = () => import('@/components/app')
const router = new VueRouter({
  routes: [
    { path: '/app', component: app }
  ]
})
//  简写 
const router = new VueRouter({
  routes: [
    { path: '/app', component:  () => import('@/components/app')}
  ]
})

三、history模式注意事项

具体可见 vue项目二级路由刷新后样式丢失、错乱的解决方案及手机端实时访问npm run dev后的项目

四、vue 实现浏览器回退记忆位置的方法

一定要使用history 模式才能实现
https://router.vuejs.org/zh/guide/advanced/scroll-behavior.html


 const router = new VueRouter({
   mode: 'history',
 scrollBehavior (to, from, savedPosition) {
     if (savedPosition) { //如果savedPosition存在,滚动条会自动跳到记录的值的地方
       return savedPosition
     } else {
       return { x: 0, y: 0 }//savedPosition也是一个记录x轴和y轴位置的对象
      }
     },
   routes: [...]
 })

相关文章

  • vue中的路由的那些事

    一、导航守卫 1、全局守卫router.beforeEach router.beforeEach 很常用,比如验证...

  • vue 路由的那些事

    关于vue路由东配置 请注意 path: '/Layout' 的写法。避免界面跳转路径和界面对应不上。

  • VUE路由的简单使用

    VUE中如何使用路由? 路由的基本使用 在html中 引入vue 和 vue-router 包 创建vue对象并将...

  • Vue—— vue中的路由

    来源:https://www.cnblogs.com/zhilili/p/14735374.html[https:...

  • Vue_Router底层封装

    Vue_Router底层封装 关于Vue中的路由,做了底层的哈希路由的封装。基础路由相对容易,其中不足之处,慢慢再...

  • 【源码】vue-rotuer1 原理

    大纲hash路由history路由vue-router简单实现vue中的数组,对象添加属性的监听 (1)Hash ...

  • Vue中的动态路由基本使用方式

    动态路由须知 一旦路由对象注入到了new Vue的示例中,那么 new Vue的示例 和 所有路由组件 的 dat...

  • vue中的路由

    1.vue-router相当于vue的第三方数据库。 2.路由的建立步骤 3.路由的嵌套 4.路由的传参

  • Vue中的路由

    路由是Vue的核心插件(Vue.router.js)路由的作用:可以根据不同的url路径访问不同的页面,可以创建单...

  • vue中的路由

    vue中4中路由包含: 1、动态路由2、嵌套路由3、编程式路由4、命名式路由 1、动态路由 2、嵌套路由 3、编程...

网友评论

    本文标题:vue中的路由的那些事

    本文链接:https://www.haomeiwen.com/subject/fbdpsftx.html