亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue router配置與使用分析講解

 更新時(shí)間:2022年12月23日 15:35:19   作者:hrj199036  
第一次寫(xiě)Vue項(xiàng)目,要用到router.js,看了一下官方文檔,還是很懵逼,不知道怎么配置,又去看視頻查資料,最后終于搞定了。話不多說(shuō),先上代碼,我再講一些要注意的細(xì)節(jié)

說(shuō)明

  1. 本教程適用于vue3中的路由vue-router@4,的配置及使用
  2. 安裝及配置
  3. 路由的基本使用
  4. 動(dòng)態(tài)路由的添加
  5. 路由守衛(wèi)
  6. 找不到路由配置(path: ‘/:pathMatch(.)’,)

一、安裝及配置

安裝

npm install vue-router@4

配置

//自己創(chuàng)建的router文件中
import { createRouter, createWebHashHistory } from 'vue-router'
//createWebHashHistory 在訪問(wèn)的時(shí)候帶有#
//createWebHistory 在訪問(wèn)的時(shí)候不帶#
const router = createRouter({
  history: createWebHashHistory(),
  routes: [
    //...
  ],
})
export default router
//在main.js文件中
import router from 'router_path'
const app = createApp(App)
app.use(router)
app.mount('#app')

二、在html中使用

用 Vue + Vue Router 創(chuàng)建單頁(yè)應(yīng)用非常簡(jiǎn)單:通過(guò) Vue.js,我們已經(jīng)用組件組成了我們的應(yīng)用。當(dāng)加入 Vue Router 時(shí),我們需要做的就是將我們的組件映射到路由上,讓 Vue Router 知道在哪里渲染它們。下面是一個(gè)基本的例子:

HTML

<script src="https://unpkg.com/vue@3"></script>
<script src="https://unpkg.com/vue-router@4"></script>
<div id="app">
  <h1>Hello App!</h1>
  <p>
    <!--使用 router-link 組件進(jìn)行導(dǎo)航 -->
    <!--通過(guò)傳遞 `to` 來(lái)指定鏈接 -->
    <!--`<router-link>` 將呈現(xiàn)一個(gè)帶有正確 `href` 屬性的 `<a>` 標(biāo)簽-->
    <router-link to="/">Go to Home</router-link>
    <router-link to="/about">Go to About</router-link>
  </p>
  <!-- 路由出口 -->
  <!-- 路由匹配到的組件將渲染在這里 -->
  <router-view></router-view>
</div>

router-link

請(qǐng)注意,我們沒(méi)有使用常規(guī)的 a 標(biāo)簽,而是使用一個(gè)自定義組件 router-link 來(lái)創(chuàng)建鏈接。這使得 Vue Router 可以在不重新加載頁(yè)面的情況下更改 URL,處理 URL 的生成以及編碼。我們將在后面看到如何從這些功能中獲益。

router-view

router-view 將顯示與 url 對(duì)應(yīng)的組件。你可以把它放在任何地方,以適應(yīng)你的布局。

三、路由的基本使用

路由基本元素有name、path、component、meta(字典)幾個(gè)要素

  • name路由名
  • path路由路徑
  • component組件名(組件的路徑及組件名)
  • meta路由元信息
import { createRouter, createWebHashHistory } from 'vue-router'
import Login from '@/views/Login.vue'
const router = createRouter({
  history: createWebHashHistory(),
  routes: [
    {
      path: '/',
      name: 'login',
      meta:{
        title:'登錄',
      },
      component: Login
    },
})
export default router

帶參數(shù)的路由匹配

很多時(shí)候,我們需要將給定匹配模式的路由映射到同一個(gè)組件。例如,我們可能有一個(gè) User 組件,它應(yīng)該對(duì)所有用戶(hù)進(jìn)行渲染,但用戶(hù) ID 不同。在 Vue Router 中,我們可以在路徑中使用一個(gè)動(dòng)態(tài)字段來(lái)實(shí)現(xiàn),我們稱(chēng)之為 路徑參數(shù) :

const User = {
  template: '<div>User</div>',
}
// 這些都會(huì)傳遞給 `createRouter`
const routes = [
  // 動(dòng)態(tài)字段以冒號(hào)開(kāi)始
  { path: '/users/:id', component: User },
]

現(xiàn)在像 /users/johnny 和 /users/jolyne 這樣的 URL 都會(huì)映射到同一個(gè)路由。

路徑參數(shù) 用冒號(hào) : 表示。當(dāng)一個(gè)路由被匹配時(shí),它的 params 的值將在每個(gè)組件中以 this.$route.params 的形式暴露出來(lái)。因此,我們可以通過(guò)更新 User 的模板來(lái)呈現(xiàn)當(dāng)前的用戶(hù) ID:

const User = {
  template: '<div>User {{ $route.params.id }}</div>',
}

你可以在同一個(gè)路由中設(shè)置有多個(gè) 路徑參數(shù),它們會(huì)映射到 $route.params 上的相應(yīng)字段。例如:

匹配模式匹配路徑route.params
/users/:username/users/eduardo{ username: ‘eduardo’ }
/users/:username/posts/:postId/users/eduardo/posts/123{ username: ‘eduardo’, postId: ‘123’ }

除了 r o u t e . p a r a m s 之外, route.params 之外, route.params之外,route 對(duì)象還公開(kāi)了其他有用的信息,如 r o u t e . q u e r y (如果 U R L 中存在參數(shù))、 route.query(如果 URL 中存在參數(shù))、 route.query(如果URL中存在參數(shù))、route.hash 等。你可以在 API 參考中查看完整的細(xì)節(jié)。

四、動(dòng)態(tài)路由的添加

路由守衛(wèi)

找不到路由配置

常規(guī)參數(shù)只匹配 url 片段之間的字符,用 / 分隔。如果我們想匹配任意路徑,我們可以使用自定義的 路徑參數(shù) 正則表達(dá)式,在 路徑參數(shù) 后面的括號(hào)中加入 正則表達(dá)式 :

const routes = [
  // 將匹配所有內(nèi)容并將其放在 `$route.params.pathMatch` 下
  { path: '/:pathMatch(.*)*', name: 'NotFound', component: NotFound },
  // 將匹配以 `/user-` 開(kāi)頭的所有內(nèi)容,并將其放在 `$route.params.afterUser` 下
  { path: '/user-:afterUser(.*)', component: UserGeneric },
]

在這個(gè)特定的場(chǎng)景中,我們?cè)诶ㄌ?hào)之間使用了自定義正則表達(dá)式,并將pathMatch 參數(shù)標(biāo)記為可選可重復(fù)。這樣做是為了讓我們?cè)谛枰臅r(shí)候,可以通過(guò)將 path 拆分成一個(gè)數(shù)組,直接導(dǎo)航到路由:

this.$router.push({
  name: 'NotFound',
  // 保留當(dāng)前路徑并刪除第一個(gè)字符,以避免目標(biāo) URL 以 `//` 開(kāi)頭。
  params: { pathMatch: this.$route.path.substring(1).split('/') },
  // 保留現(xiàn)有的查詢(xún)和 hash 值,如果有的話
  query: this.$route.query,
  hash: this.$route.hash,
})

到此這篇關(guān)于Vue router配置與使用分析講解的文章就介紹到這了,更多相關(guān)Vue router配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何用Vite構(gòu)建工具快速創(chuàng)建Vue項(xiàng)目

    如何用Vite構(gòu)建工具快速創(chuàng)建Vue項(xiàng)目

    Vite是一個(gè)web開(kāi)發(fā)構(gòu)建工具,由于其原生?ES?模塊導(dǎo)入方法,它允許快速提供代碼,下面這篇文章主要給大家介紹了關(guān)于如何用Vite構(gòu)建工具快速創(chuàng)建Vue項(xiàng)目的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • el-date-picker時(shí)間清空值為null處理方案

    el-date-picker時(shí)間清空值為null處理方案

    本文介紹關(guān)于Vue.js項(xiàng)目中時(shí)間選擇器組件的問(wèn)題,當(dāng)選擇后清空導(dǎo)致值變?yōu)閚ull,進(jìn)而引發(fā)后臺(tái)接口報(bào)錯(cuò),通過(guò)監(jiān)聽(tīng)`overallForm.time`的值并設(shè)置為空數(shù)組,成功解決此問(wèn)題,確保了數(shù)據(jù)正確性,同時(shí),建議避免直接監(jiān)聽(tīng)整個(gè)對(duì)象以?xún)?yōu)化性能,感興趣的朋友一起看看吧
    2024-08-08
  • vue iview實(shí)現(xiàn)分頁(yè)功能

    vue iview實(shí)現(xiàn)分頁(yè)功能

    這篇文章主要為大家詳細(xì)介紹了vue iview實(shí)現(xiàn)分頁(yè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Vue3+TypeScript埋點(diǎn)方面的應(yīng)用實(shí)踐

    Vue3+TypeScript埋點(diǎn)方面的應(yīng)用實(shí)踐

    本文詳細(xì)闡述了如何在Vue3中使用TypeScript實(shí)現(xiàn)埋點(diǎn)功能,包括全局注冊(cè)$track插件、Mixin實(shí)現(xiàn)全局埋點(diǎn)等,隨著Vue3的逐漸普及,在實(shí)際工作中采用Vue3+TypeScript實(shí)現(xiàn)埋點(diǎn)將會(huì)變得越來(lái)越流行
    2023-08-08
  • vue中的config目錄下index.js解讀

    vue中的config目錄下index.js解讀

    這篇文章主要介紹了vue中的config目錄下index.js解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Vue2.0實(shí)現(xiàn)組件數(shù)據(jù)的雙向綁定問(wèn)題

    Vue2.0實(shí)現(xiàn)組件數(shù)據(jù)的雙向綁定問(wèn)題

    這篇文章主要介紹了Vue2.0實(shí)現(xiàn)組件數(shù)據(jù)的雙向綁定問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-03-03
  • 詳解 vue.js用法和特性

    詳解 vue.js用法和特性

    Vue.js目前已經(jīng)更新到2.x,功能和語(yǔ)法上有一定升級(jí)和修改,本文首先介紹基礎(chǔ)內(nèi)容。感興趣的朋友一起看看吧
    2017-10-10
  • Vue 打包的靜態(tài)文件不能直接運(yùn)行的原因及解決辦法

    Vue 打包的靜態(tài)文件不能直接運(yùn)行的原因及解決辦法

    這篇文章主要介紹了Vue 打包的靜態(tài)文件不能直接運(yùn)行的原因及解決辦法,幫助大家更好的理解和學(xué)習(xí)vue框架,感興趣的朋友可以了解下
    2020-11-11
  • vue全局使用axios的方法實(shí)例詳解

    vue全局使用axios的方法實(shí)例詳解

    這篇文章主要介紹了vue全局使用axios的方法實(shí)例詳解,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • Vue支持搜索與篩選的用戶(hù)列表實(shí)現(xiàn)流程介紹

    Vue支持搜索與篩選的用戶(hù)列表實(shí)現(xiàn)流程介紹

    這篇文章主要介紹了Vue支持搜索與篩選的用戶(hù)列表實(shí)現(xiàn)流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-10-10

最新評(píng)論