美文网首页前端
vue-routes 基础(二)

vue-routes 基础(二)

作者: LazyCat404 | 来源:发表于2021-04-28 17:31 被阅读0次

hash / history 原理及区别

原理
  • hash 模式:用hash值模拟路由变化,通过监听hashchange事件,动态更新页面。

  • history 模式:通过H5的pushStateresplaceState,这个两个API 可以改变url,但是不会发送请求。

区别
  • url 展示上,hash 模式有 "#",

  • 刷新页面时,hash 模式可以正常加载到 hash 值对应的页面,而 history 没有处理的话,会返回 404,一般需要后端将所有页面都配置重定向到首页路由兼容性。

  • hash 可以支持低版本浏览器和 IE。

路由守卫

  1. 全局守卫:路由实例上直接操作的钩子函数,即,所有路由都会触发。

      const router = new VueRouter({ ... })
      router.beforeEach((to, from, next) => {
          // 守卫,守住底线
      })
    
    • beforeEach(to,from,next):路由跳转前触发,常用于登录验证

    • beforeResolve(to,from,next):与beforeEach类似,也在路由跳转前触发,区别在于,导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,解析守卫就被调用(即在 beforeEach 和 组件内beforeRouteEnter 之后,afterEach之前调用)。

    • afterEach(to,from):在路由跳转完成后触发,它发生在beforeEachbeforeResolve之后,beforeRouteEnter之前。

  2. 路由守卫:在单个路由配置的钩子函数

      const router = new VueRouter({
          routes:[{
              path:'/index',
              component:index,
              beforeEnter:(to,from, next) => {
                  // 随便写点什么了
              }
          }]
      })
    
    • beforeEnter(to,from,next):与beforeEach完全相同,如果两个都设置了,则此守卫后执行
  3. 组件守卫:在组件内执行的钩子函数,类似于组件内的生命周期,相当于为配置路由的组件添加的生命周期钩子函数。

    <script>
    export default{
       beforeRouteEnter (to, from, next) {
              // 我想不想一个钩子?
       },
    }
    </script>
    
    • beforeRouteEnter(to,from,next):组件实例创建前,不能调用this

    • beforeRouteUpdate(to,from,next):当前路由改变,组件被重复调用,可以使用this

    • beforeRouteLeav(to,from,next):导航离开该组件的对应路由时调用可以访问组件实例 this

路由守卫

相关文章

  • vue-routes 基础(二)

    hash / history 原理及区别 原理 hash 模式:用hash值模拟路由变化,通过监听hashchan...

  • vue-routes 基础(一)

    路由常用技巧 更新:2020-12-25 获取当前路由 路由监听(路由地址变化时才执行) 嵌套路由 嵌套路由其实就...

  • 二分查找

    [TOC] 二分查找的基础模板 二分查找靠左的Index基础模板 二分查找靠右的Index基础模板 二分查找插入t...

  • 3万字深度分析:二手电商的产品设计之道(下篇))

    【全文目录】 一、浅谈:二手电商平台的商业基础 基础的基础:何为“二手电商” 基础之上:二手电商平台的四要素 交易...

  • 二、基础

    一、输入和输出 输出 输出:将数据打印到标准输出设备(屏幕),在python 2.7中使用print()函数,括号...

  • 基础(二)

    很多人都参加过各种同学会,当然,本人也参加过那么几次同学会。同学会无论如何都会在自己的脑海里,留下这样或那...

  • 基础(二)

    1.基本数据类型,引用数据类型 2.键盘录入: Scanner sc=newScanner(System.in);...

  • Android视频开发基础

    Android视频开发基础(一) Android视频开发基础(二)

  • Dart 基础(四)

    前言笔者在之前已经写了3篇Dart的基础文章了。Dart 基础 (一)Dart 基础 (二)Dart 基础 (三)...

  • 进程化

    一、基础 IPC机制 -- 基础知识 -- 多进程模式 二、使用

网友评论

    本文标题:vue-routes 基础(二)

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