Vue3路由學習指南

一、Vue3路由配置

Vue3路由的配置和Vue2基本相同。在Vue3的項目中,我們需要先安裝Vue-Router。可以使用npm命令進行安裝:

npm i vue-router@next

接下來,在main.js中引入Vue-Router:

import { createRouter, createWebHashHistory } from 'vue-router';
import App from './App.vue';

const routes = [
  // 定義路由
  {path: '/', component: Home},
  {path: '/about', component: About},
  {path: '/contact', component: Contact}
];

// 創建路由實例
const router = createRouter({
  history: createWebHashHistory(),
  routes, // 使用`routes`配置選項定義路由
});

const app = createApp(App);
app.use(router); // 使用路由

app.mount('#app');

二、Vue2和Vue3路由區別

Vue3路由相較於Vue2來說最大的變化就是在引入路由實例的方式上。在Vue2中我們使用如下方法:

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
    routes:[]
})

而在Vue3中,我們使用的是createRouter:

import { createRouter, createWebHashHistory } from 'vue-router';
import App from './App.vue';

const router = createRouter({
  history: createWebHashHistory(),
  routes, // 使用`routes`配置選項定義路由
});

其中,history的選項要注意,Vue2是通過mode來配置

三、Vue3路由參數

在Vue3中,我們可以在聲明路由時使用props屬性設置組件參數。例如:

const routes = [
  // 定義路由
  {path: '/user/:id', component: User, props: true}, // 傳遞路由參數
];

然後,在組件中,我們通過props來接受路由參數。例如:

const User = {
  props: ['id'], // 接收params傳遞的參數
  template: '<div>UserId: {{id}}</div>'
}

四、Vue3路由配置公共頁面和跳轉頁面

在Vue3中,通常會有一些公共頁面,例如header,footer等重複出現在多個頁面中的元素,我們可以使用layout來定義。例如:

const router = createRouter({
  history: createWebHashHistory(),
  routes: [
    {
      path: '/',
      name: 'Layout',
      component: Layout,
      children: [
        {
          path: '',
          name: 'Home',
          component: Home
        },
        {
          path: '/about',
          name: 'About',
          component: About
        }
      ]
    },
    {
      path: '/contact',
      name: 'Contact',
      component: Contact
    }
  ]
})

在上面的代碼中,我們定義了一個Layout組件,Home和About共用這個Layout組件。Contact是獨立的頁面。在Layout中,我們可以定義一些公共的元素,如header和footer,同時,通過children屬性可以定義子路由。

在跳轉頁面時,我們可以使用router-link來實現,例如:

<router-link to="/">Home</router-link>
<router-link to="/about">About</router-link>
<router-link to="/contact">Contact</router-link>

五、Vue3子路由配置

在Vue3中,子路由的定義也和Vue2基本相同。例如:

const routes = [
  {
    path: '/user',
    component: User,
    children: [
      {
        path: 'profile',
        component: UserProfile
      },
      {
        path: 'posts',
        component: UserPosts
      }
    ]
  }
]

在上面的代碼中,我們定義了一個/user路由,它包含了兩個子路由。然後在User組件中,我們可以使用<router-view>來顯示子路由的內容:

<div>
  <h2>User Page</h2>
  <router-link to="/user/profile">Profile</router-link>
  <router-link to="/user/posts">Posts</router-link>
  <router-view/>
</div>

六、Vue3動態路由講解

在Vue3中,我們可以使用動態路由,例如:

const routes = [
  { path: '/user/:id', component: User },
]

在上面的代碼中,我們使用了:id來代表了一個動態的路由,它可以匹配到任何/user/後面的路徑,並將路徑保存到$route.params.id中。

七、Vue3配置子路由關鍵字

在Vue3中,我們可以使用一個新的關鍵字來配置子路由,即:children。例如:

const routes = [
  {
    path: '/user',
    component: User,
    children: [
      {
        path: '',
        component: UserHome
      },
      {
        path: 'profile',
        component: UserProfile
      },
      {
        path: 'posts',
        component: UserPosts
      }
    ]
  }
]

在上面的代碼中,我們使用了children來配置/user路由的子路由,其中,”表示默認路由,也就是/user的首頁。在User組件中,我們可以使用不同的子路由來使用<router-view>來顯示。

八、Vue3路由緩存

在Vue3中,我們可以使用keep-alive標籤來實現路由緩存。例如:

<keep-alive>
  <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>

在上面的代碼中,我們使用$router.meta.keepAlive屬性來判斷當前路由是否需要緩存。如果需要緩存,就使用<keep-alive>來包裝。

關於Vue3路由的更多內容可以參考Vue官方文檔中的路由部分:https://v3.cn.vuejs.org/guide/routing.html

原創文章,作者:QMHQV,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/330610.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QMHQV的頭像QMHQV
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相關推薦

  • MikroTik軟路由的全面分析

    一、什麼是MikroTik軟路由 MikroTik軟路由是基於MikroTik RouterOS操作系統搭建的網絡路由器,能夠提供廣域網(WAN)和局域網(LAN)的網絡連接功能,…

    編程 2025-04-25
  • 刪除靜態路由

    一、靜態路由的定義 路由(Routing)是指在一組互聯的計算機網絡中,根據一定的算法規則實現兩個節點之間選擇合適的路徑並且傳送數據包的過程。簡單來說,路由就是在網絡中選擇一條可達…

    編程 2025-04-25
  • Linux加路由詳解

    一、路由介紹 路由器的作用是將數據包轉發到正確的網絡上。路由器是網絡互聯時必須的設備。路由器可以將網絡劃分成若干個子網絡,路由器之間相互通信,將數據傳遞到目的網絡。 二、Linux…

    編程 2025-04-24
  • 單臂路由的作用

    一、提高網絡連接速度 單臂路由採用了物理隔離網路的方式,將不同的網段分開,從而減少了網絡中的衝突和干擾,提高了網絡的連接速度。 /* 代碼示例一 */ #include int m…

    編程 2025-04-24
  • Vue嵌套路由的全面解析

    Vue 嵌套路由(Nested Routes) 是 Vue.js 的基礎知識之一,非常重要。本文將從多個方面進行詳細闡述,並提供代碼示例,幫助開發者更好地理解 Vue 嵌套路由的原…

    編程 2025-04-23
  • NavigationDuplicated:Vue.js路由重複

    一、什麼是NavigationDuplicated? NavigationDuplicated錯誤是Vue.js中常見的錯誤之一,它表示用戶在激活相同路由時發生了錯誤。它是Vue.…

    編程 2025-04-23
  • 微信小程序路由詳解

    微信小程序作為一種輕量級的應用程序,其路由功能在其中佔據着重要的地位。路由功能的作用在於實現不同頁面之間的跳轉,用戶在小程序中瀏覽頁面的時候就是通過路由來進行頁面的跳轉。因此,對於…

    編程 2025-04-23
  • Vue中使用this.$router.push切換路由時頁面不刷新的解決方法

    一、原因分析 在我們平時使用Vue開發項目時,經常會使用this.$router.push切換路由,從而實現頁面之間的跳轉。但是,有時候我們發現切換路由後,頁面並沒有進行刷新,這時…

    編程 2025-04-23
  • R2S軟路由設置教程

    一、ROS軟路由設置教程 ROS(RouterOS)是一種由拉蒂斯網絡公司開發的專用路由操作系統,可以用於路由器和無線接入點,可以替代商用路由器,擁有功能強大的路由功能、防火牆等等…

    編程 2025-04-23
  • Python學習指南——從菜鳥到進階

    一、Python介紹 Python是一種高級編程語言,由Guido van Rossum於1989年底發明。Python是一門面向對象的語言,具有簡單易學、代碼簡潔、可讀性高等特點…

    編程 2025-04-02

發表回復

登錄後才能評論