摘要:當(dāng)對(duì)應(yīng)的路由匹配成功,將自動(dòng)設(shè)置屬性值。執(zhí)行效果依賴(lài)方法的調(diào)用參數(shù)。而這個(gè)鉤子就會(huì)在這個(gè)情況下被調(diào)用。滾動(dòng)行為只在支持的瀏覽器中可用。當(dāng)且僅當(dāng)導(dǎo)航通過(guò)瀏覽器的前進(jìn)后退按鈕觸發(fā)時(shí)才可用。
當(dāng)對(duì)應(yīng)的路由匹配成功,將自動(dòng)設(shè)置 class 屬性值 .router-link-active 。 默認(rèn) hash 模式:使用 URL 的 hash 來(lái)模擬一個(gè)完整的 URL,于是當(dāng) URL 改變時(shí),頁(yè)面不會(huì)重新加載。 history 模式:充分利用 history.pushState API 來(lái)完成 URL 跳轉(zhuǎn)而無(wú)須重新加載頁(yè)面,此模式如果 URL 匹配不到任何靜態(tài)資源,則應(yīng)該返回同一個(gè) index.html 頁(yè)面。 動(dòng)態(tài)路由匹配 {path: "/user/:id", component: User} user/abc user/123 都將映射到相同的路由 this.$route.params.id(template 中 $route.params.id) {path: "/user-*"} 匹配以 `/user-` 開(kāi)頭的任意路徑 嵌套路由 User 需要 children 路徑不能以 "/" 開(kāi)頭 { path: "/user", component: User, children: [ { // 當(dāng) /user/profile 匹配成功, // UserProfile 會(huì)被渲染在 User 的 中 path: "profile", component: UserProfile }, { // 當(dāng) /user/posts 匹配成功 // UserPosts 會(huì)被渲染在 User 的 中 path: "posts", component: UserPosts } ] } 編程式的導(dǎo)航 等同于調(diào)用 router.push(...) this.$router.push(location, onComplete?, onAbort?) this.$router.push("home") this.$router.push({ path: "register", query: { plan: "private" }}) this.$router.push({ name: "user", params: { userId: "123" }}) location 如果提供了 path,params 會(huì)被忽略,解決辦法:{path: `register/${id}`} onComplete 和 onAbort 兩個(gè)回調(diào)用于導(dǎo)航成功完成(在所有的異步鉤子被解析之后)或終止(導(dǎo)航到相同的路由、或在當(dāng)前導(dǎo)航完成之前導(dǎo)航到另一個(gè)不同的路由)的時(shí)候進(jìn)行相應(yīng)的調(diào)用 等同于調(diào)用 router.replace(...),和 router.push() 唯一的不同就是,它不會(huì)向 history 添加新記錄,而是替換掉當(dāng)前的 history 記錄 router.go(n) 這個(gè)方法的參數(shù)是一個(gè)整數(shù),意思是在 history 記錄中向前或者后退多少步,類(lèi)似 window.history.go(n)。 命名視圖 { path: "/", components: { default: Foo, a: Bar, b: Baz } } 重定向和別名 { path: "/a", redirect: "/b" } { path: "/a", redirect: { name: "foo" }} { path: "/a", redirect: to => { // 方法接收 目標(biāo)路由 作為參數(shù) // return 重定向的 字符串路徑/路徑對(duì)象 }} { path: "/a", component: A, alias: "/b" } 導(dǎo)航守衛(wèi) 全局前置守衛(wèi) router.beforeEach((to, from, next) => { // to: Route: 即將要進(jìn)入的目標(biāo) 路由對(duì)象 // from: Route: 當(dāng)前導(dǎo)航正要離開(kāi)的路由 // next: Function: 一定要調(diào)用該方法來(lái) resolve 這個(gè)鉤子。執(zhí)行效果依賴(lài) next 方法的調(diào)用參數(shù)。 // some code next() }) 全局后置鉤子 router.afterEach((to, from) => { // ... }) 路由獨(dú)享的守衛(wèi) { path: "/foo", component: Foo, beforeEnter: (to, from, next) => {/* */} } 組件內(nèi)的守衛(wèi) const Foo = { template: `...`, beforeRouteEnter (to, from, next) { // 在渲染該組件的對(duì)應(yīng)路由被 confirm 前調(diào)用 // 【不能】獲取組件實(shí)例 `this`,不過(guò),你可以通過(guò)傳一個(gè)回調(diào)給 next來(lái)訪(fǎng)問(wèn)組件實(shí)例 next(vm => { // 通過(guò) `vm` 訪(fǎng)問(wèn)組件實(shí)例 }) // 因?yàn)楫?dāng)守衛(wèi)執(zhí)行前,組件實(shí)例還沒(méi)被創(chuàng)建 }, beforeRouteUpdate (to, from, next) { // 在當(dāng)前路由改變,但是該組件被復(fù)用時(shí)調(diào)用 // 舉例來(lái)說(shuō),對(duì)于一個(gè)帶有動(dòng)態(tài)參數(shù)的路徑 /foo/:id,在 /foo/1 和 /foo/2 之間跳轉(zhuǎn)的時(shí)候, // 由于會(huì)渲染同樣的 Foo 組件,因此組件實(shí)例會(huì)被復(fù)用。而這個(gè)鉤子就會(huì)在這個(gè)情況下被調(diào)用。 // 可以訪(fǎng)問(wèn)組件實(shí)例 `this` }, beforeRouteLeave (to, from, next) { // 導(dǎo)航離開(kāi)該組件的對(duì)應(yīng)路由時(shí)調(diào)用 // 可以訪(fǎng)問(wèn)組件實(shí)例 `this` } } 路由元信息 { path: "bar", component: Bar, meta: { requiresAuth: true, title: "BAR" } } 遍歷 $route.matched 來(lái)檢查路由記錄中的 meta 字段。 滾動(dòng)行為 scrollBehavior 只在支持 history.pushState 的瀏覽器中可用。 new VueRouter({ routes: [...], scrollBehavior (to, from, savedPosition) { // savedPosition 當(dāng)且僅當(dāng) popstate 導(dǎo)航 (通過(guò)瀏覽器的 前進(jìn)/后退 按鈕觸發(fā)) 時(shí)才可用。 // return 期望滾動(dòng)到哪個(gè)的位置 } }) 路由懶加載 const Foo = () => import("./Foo.vue")
https://router.vuejs.org/zh/
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/104725.html
摘要:的路徑的路由組件點(diǎn)擊后的結(jié)果你會(huì)發(fā)現(xiàn)被匹配后中的就會(huì)接收到字符串,因此輸出結(jié)果如圖所示對(duì)象模式如果是一個(gè)對(duì)象,它會(huì)被按原樣設(shè)置為組件屬性。最終的就是傳入的 安裝 直接下載(官方CDN) https://unpkg.com/vue-router/...通過(guò)頁(yè)面script標(biāo)簽引入,如下: NPM安裝 npm install vue-router --save-dev 安裝完成后需要Vu...
摘要:的路徑的路由組件點(diǎn)擊后的結(jié)果你會(huì)發(fā)現(xiàn)被匹配后中的就會(huì)接收到字符串,因此輸出結(jié)果如圖所示對(duì)象模式如果是一個(gè)對(duì)象,它會(huì)被按原樣設(shè)置為組件屬性。最終的就是傳入的 安裝 直接下載(官方CDN) https://unpkg.com/vue-router/...通過(guò)頁(yè)面script標(biāo)簽引入,如下: NPM安裝 npm install vue-router --save-dev 安裝完成后需要Vu...
摘要:的路徑的路由組件點(diǎn)擊后的結(jié)果你會(huì)發(fā)現(xiàn)被匹配后中的就會(huì)接收到字符串,因此輸出結(jié)果如圖所示對(duì)象模式如果是一個(gè)對(duì)象,它會(huì)被按原樣設(shè)置為組件屬性。最終的就是傳入的 安裝 直接下載(官方CDN) https://unpkg.com/vue-router/...通過(guò)頁(yè)面script標(biāo)簽引入,如下: NPM安裝 npm install vue-router --save-dev 安裝完成后需要Vu...
摘要:系列文章鏈接主要記錄自己開(kāi)始學(xué)習(xí)的一些源碼閱讀基于版本介紹了構(gòu)造函數(shù)如何來(lái)的,以及其上的屬性方法原型方法靜態(tài)方法的過(guò)程發(fā)生了什么對(duì)象如何生成對(duì)象如何掛載到真實(shí)的節(jié)點(diǎn)介紹了的插入,的使用,實(shí)例的生成實(shí)例對(duì)象上的和對(duì)象的創(chuàng)建中的組件和的源碼 系列文章鏈接主要記錄自己開(kāi)始學(xué)習(xí)Vue的一些源碼閱讀:基于2.5.8版本 Vue-SourceCode 介紹了 Vue構(gòu)造函數(shù)如何來(lái)的,以及其上的屬...
摘要:前言一個(gè)包含的簡(jiǎn)單,從第一個(gè)開(kāi)始,依次深入學(xué)習(xí),即可快速上手強(qiáng)大的。 前言 一個(gè)包含 vue-router的簡(jiǎn)單demos,從第一個(gè)demo開(kāi)始,依次深入學(xué)習(xí),即可快速上手強(qiáng)大的vue-router。 如何使用 安裝模塊pure 或 http-server來(lái)啟動(dòng)服務(wù)器npm install -g puer or npm install -g http-server 克隆倉(cāng)庫(kù) 啟動(dòng)服...
摘要:有多種方式可以在路由導(dǎo)航發(fā)生時(shí)執(zhí)行鉤子全局的單個(gè)路由獨(dú)享的或者組件級(jí)的。進(jìn)行管道中的下一個(gè)鉤子。當(dāng)前的導(dǎo)航被中斷,然后進(jìn)行一個(gè)新的導(dǎo)航。通過(guò)訪(fǎng)問(wèn)組件實(shí)例路由元信息你可以在中直接訪(fǎng)問(wèn)。 導(dǎo)航鉤子 vue-router 提供的導(dǎo)航鉤子主要用來(lái)攔截導(dǎo)航,讓它完成跳轉(zhuǎn)或取消。有多種方式可以在路由導(dǎo)航發(fā)生時(shí)執(zhí)行鉤子:全局的, 單個(gè)路由獨(dú)享的, 或者組件級(jí)的。 全局鉤子 你可以使用 router....
閱讀 641·2021-11-24 09:39
閱讀 3485·2019-08-30 15:53
閱讀 2519·2019-08-30 15:44
閱讀 3245·2019-08-30 12:54
閱讀 2212·2019-08-29 12:23
閱讀 3309·2019-08-26 14:05
閱讀 2111·2019-08-26 13:36
閱讀 3441·2019-08-26 13:33