VueRouter跳轉詳解

一、VueRouter跳轉方式

VueRouter是一個Vue.js官方提供的路由管理器。它可以通過「路由」將組件映射到URL,實現組件的切換。VueRouter提供了三種方式進行跳轉:

  1. 聲明式導航
  2. 編程式導航
  3. 命名路由

二、VueRouter跳轉方法

1.聲明式導航

<!--template-->
<router-link to="/home">Home</router-link>
<!--OR-->
<router-link :to="{ path: '/home' }">Home</router-link>

2.編程式導航

//HTML
<button @click="gotoHome">Home</button>

//JS
methods: {
  gotoHome() {
    this.$router.push('/home');
    //或者
    this.$router.push({ path: '/home' });
  }
}

3.命名路由

<!--template-->
<router-link :to="{ name: 'home' }">Home</router-link>

//JS
const router = new VueRouter({
  routes: [
    {
      path: '/home',
      name: 'home',
      component: Home
    }
  ]
})

三、VueRouter跳轉當前頁

當你在同一個頁面中多次點擊同一個路由時,一般情況下Vue-Router不會響應。如果想進行強制跳轉,需要採用以下兩種方法之一:

  1. 使用$route對象的reload()方法
  2. 在標籤中添加:key屬性

代碼演示:

1.this.$router.go(0);//reload
2.<router-link :to="{ path:'/home',query:{id:1} }" :key="$route.fullPath">Home</router-link>

四、VueRouter跳轉原理

VueRouter是實現路由的組件,對它的理解,我們需要對Vue單文件組件有一定的了解,同時VueRouter底層是基於hash和history來實現的。下面是VueRouter的原理示意圖:

五、VueRouter跳轉之後刷新

在VueRouter中,通過路由跳轉的時候,組件是不會被銷毀的,而是被緩存起來方便下次使用。有時候我們需要組件被退出後重新渲染,這時候有兩種解決方式:

  1. 在$routeChange鉤子中調用組件的生命周期
  2. 通過在路由中添加參數,例如時間戳或隨機數,來重新渲染組件

代碼演示:

1.//JS
created() {
  console.log('create');
  this.init();
},
beforeDestroy() {
  console.log('destroy');
},
beforeRouteEnter(to,from,next){
  next(vm=>{
    // 更新視圖組件
    vm.$options.methods.init.call(vm);
  })
},
//HTML
<!--template-->
<div>{{msg}}</div>
2.<!--template-->
<router-link :to="{path:'/home?time='+new Date().getTime()}">Home</router-link>

六、VueRouter跳轉很慢

在VueRouter中,當我們頻繁跳轉路由時,可能會出現頁面卡頓的現象。這時候可以通過使用keep-alive組件來緩存已經渲染的組件,達到提高訪問速度的目的。

<!--template-->
<keep-alive>
  <router-view :key="$route.path"></router-view>
</keep-alive>

七、VueRouter官方文檔

VueRouter官網提供了詳細的中英文文檔,可以在上面查找到任何需要的信息和教程。官方文檔鏈接:VueRouter

八、VueRouter有哪些組件

VueRouter提供了三個重要的組件,分別是:

  1. router-link:生成一個a標籤用於跳轉到一個指定的地址。
  2. router-view:路由匹配到的組件將渲染在這個中。
  3. keep-alive:用於緩存已經渲染的組件,節約性能提高訪問速度。

九、VueRouter中文文檔

VueRouter中文文檔提供了對VueRouter實用性很強的介紹和使用方法。鏈接如下:VueRouter

十、VueRouter路由守衛

路由守衛是VueRouter中一種特殊的操作方式,可以在路由發生變化時對跳轉控制進行干預。路由守衛提供了以下三種鉤子函數:

  1. 全局守衛
  2. 組件內守衛
  3. 非同步路由守衛
//JS
const router = new VueRouter({
  routes: [
    {
      path:'/home',
      component: Home,
      beforeEnter: (to, from, next) => {
        if (localStorage.getItem('login') === 'true') {
          next();
        } else {
          next('/login');
        }
      }
    }
  ]
})

以上是VueRouter的跳轉詳解,對VueRouter的學習非常重要,在開發過程中是必須掌握的技能之一。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/153758.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-15 03:23
下一篇 2024-11-15 03:23

相關推薦

  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變數讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性感測器,能夠同時測量加速度和角速度。它由三個感測器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Java BigDecimal 精度詳解

    一、基礎概念 Java BigDecimal 是一個用於高精度計算的類。普通的 double 或 float 類型只能精確表示有限的數字,而對於需要高精度計算的場景,BigDeci…

    編程 2025-04-25

發表回復

登錄後才能評論