摘要:那么這個時候,我們需要在中,加載配置三個組件為復(fù)數(shù)。傳遞參數(shù)不需要在中進(jìn)行配置獲取參數(shù)其他的寫法帶查詢參數(shù),下面的結(jié)果為拼到中
什么是 Vue Router?
Vue Router是Vue.js的官方路由管理器,可以控制Vue單頁應(yīng)用的路由。
如何快速上手? vue-cli腳手架自帶Vue-Router依賴新版的vue-cli腳手架中,默認(rèn)default模式?jīng)]有router依賴,請選擇Manually select features后添加Router依賴后,選擇History模式。
vue-cli官網(wǎng)
在HTML進(jìn)行路由設(shè)置新建分類
我們可以利用
export default { methods: { onCreate() { this.$router.push({ path: "/categories/create" }) } } } 新建分類
我可以使用this.$router方法進(jìn)行操作路由
// 按需加載你需要的依賴 import Vue from "vue" import Router from "vue-router" import Main from "./views/main.vue" import CategoryEdit from "./components/categoryEdit.vue" Vue.use(Router) export default new Router({ mode: "history", // history模式 base: process.env.BASE_URL, // 環(huán)境內(nèi)部基礎(chǔ)地址 routes: [ { path: "/", // 當(dāng)?shù)刂吩诟夸浀臅r候,跳轉(zhuǎn)到Main的組件,這就是首頁 name: "main", component: Main, children: [ { path: "/categories/create",// 它是Main的子路由,默認(rèn)在首頁 調(diào)用CategoryEdit組件 name: "categoryCreate", component: CategoryEdit }, { path: "/categories/create", // 它是Main的子路由, 當(dāng)?shù)刂忿D(zhuǎn)到/categories/create上,則調(diào)用CategoryEdit組件 name: "categoryCreate", component: CategoryEdit } ] } ] })嵌套路由
剛剛在上面我們提高了「子路由」,然后我們開始了解下嵌套路由
/user/foo/profile /user/foo/posts +------------------+ +-----------------+ | User | | User | | +--------------+ | | +-------------+ | | | Profile | | +------------> | | Posts | | | | | | | | | | | +--------------+ | | +-------------+ | +------------------+ +-----------------+
這是官網(wǎng)的栗子,我們看來下更直觀。
我們要做的是改變這個網(wǎng)頁的子路由內(nèi)容組件人,讓我們看下代碼吧~
export default { methods: { onCreate() { this.$router.push({ path: "/categories/create" }) } } } 分類 新建分類 分類列表
當(dāng)我們在進(jìn)行執(zhí)行 $this.router.push 或者
我們可以看到,push的路徑是「/categories/create」,回到router.js代碼上,我們可以看到,/categories/create是在/根目錄下的children里面,這就說明它是根目錄的子路由,子路由在子路由標(biāo)簽
header
side
content
我們需要這三個都是動態(tài)的,都是需要根據(jù)需求加載不同的內(nèi)容。
那么這個時候,我們需要在router.js中,加載配置三個組件
components為復(fù)數(shù)。
import Header from "./components/header.vue" import Side from "./components/side.vue" import Content from "./components/content.vue" import CategoryEdit from "./components/categoryEdit.vue" import CategoryList from "./components/categoryList.vue" routes: [ { path: "/", name: "main", components: { efault: Header, a: Side, b: Content }, children: [ { path: "/categories/create/:userid", name: "categoryCreate", component: CategoryEdit }, { path: "/", name: "categoryList", component: CategoryList } ] } ]動態(tài)路由分配(如何給函數(shù)添加參數(shù)以及如何保證跳轉(zhuǎn)的唯一性)
在絕大分部情況下,我們需要利用同一個組件加載不同的數(shù)據(jù)內(nèi)容(比如詳情、用戶表信息等等),那我們怎么保證跳轉(zhuǎn)的唯一性呢?
這時候,我們需要利用路由命名方法
1.router.js 配置對應(yīng)路徑以及名字export default new Router({ mode: "history", base: process.env.BASE_URL, routes: [ { path: "/", name: "main", component: Main, children: [ { path: "/categories/create/:userid", // 這是userid就是參數(shù)名 name: "categoryCreate", component: CategoryEdit }, { path: "/", name: "categoryList", component: CategoryList } ] } ] })2.路由容器,執(zhí)行跳轉(zhuǎn)操作
onCreate() { this.$router.push({ name: "categoryCreate", params: { userid: 123 } }) }3.點擊跳轉(zhuǎn),則地址變成
http://localhost:8080/categories/create/1234.在子路由容器中獲取到參數(shù)名字和內(nèi)容
mounted() { // 注意是this.$route,是路由對象 console.log("你獲取的參數(shù)是:" + this.$route.params); },
打印出來的數(shù)據(jù)
{ userid: "123" }
關(guān)于命名路由,還有其他的寫法
// HTML上GET請求-路由組件傳參數(shù)User // .vue組件的其他寫法 const userId = "123" router.push({ name: "user", params: { userId }}) // -> /user/123 router.push({ path: `/user/${userId}` }) // -> /user/123 // 這里的 params 不生效,必須使用上面的寫法 router.push({ path: "/user", params: { userId }}) // -> /user
這個和一般的url上拼接參數(shù),獲取一樣,只不過router提供一個設(shè)置和獲取方法。
http://localhost:8080/categories/create/123?dataval=admin傳遞參數(shù)
this.$router.push({ name: "categoryCreate?ad=11", params: { userid: 123 }, query: { dataval: "admin" } })
不需要在router.js中進(jìn)行配置獲取參數(shù)
let val = this.$route.query.dataval; // admin其他的寫法
Register this.$router.push({path: `/categories/create/${userid}?admin=tre`});
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/104694.html
摘要:路由模塊的本質(zhì)就是建立起和頁面之間的映射關(guān)系。模式的原理是事件監(jiān)測值變化,可以在對象上監(jiān)聽這個事件。這兩個方法應(yīng)用于瀏覽器記錄棧,在當(dāng)前已有的基礎(chǔ)之上,它們提供了對歷史記錄修改的功能。 vue-router 這里的路由并不是指我們平時所說的硬件路由器,這里的路由就是SPA(單頁應(yīng)用)的路徑管理器。再通俗的說,vue-router就是WebApp的鏈接路徑管理系統(tǒng)。vue-router是...
摘要:你可以在創(chuàng)建實例的時候,在配置中給某個路由設(shè)置名稱。如果沒有設(shè)置名字,那么默認(rèn)為。 Vue.js路由(Vue-router) 安裝 直接引入 vue-router下載鏈接https://unpkg.com/vue-router/... npm下載 npm install vue-router 如果在一個模塊化工程中使用它,必須要通過 Vue.use() 明確地安裝路由功能:在你的文...
摘要:路由基礎(chǔ)使用插件處理路由,路由是開發(fā)單頁應(yīng)用必須掌握的知識。什么是是官方提供前端路由插件,借助它我們實現(xiàn)可以基于路由和組件的單頁面應(yīng)用。子路由前面不能有。命名路由路由對象中的屬性是路由的名字,可用該名字指定路徑。 vue 路由基礎(chǔ) vue 使用 vue-router 插件處理路由,路由是開發(fā)單頁應(yīng)用必須掌握的知識。 什么是 vue-router? (1)vue-router 是 Vue...
摘要:中的包中的包主要有三個和。的理念上面提到的理念是一切皆組件以下統(tǒng)一稱組件。從這點來說的確方便了不少,也迎合一切皆組件的理念。組件是中主要的組成單位,可以認(rèn)為是或的路由入口。將該標(biāo)示為嚴(yán)格匹配路由。的屬性追加一條。 2019年不知不覺已經(jīng)過去19天了,有沒有給自己做個總結(jié)?有沒有給明年做個計劃?當(dāng)然筆者已經(jīng)做好了明年的工作、學(xué)習(xí)計劃;同時也包括該系列博客剩下的博文計劃,目前還剩4篇:分別...
摘要:目錄一創(chuàng)建項目二配置路由三靜態(tài)資源四模板引擎五結(jié)語是由原班人馬打造的超輕量服務(wù)端框架與相比,除了自由度更高,可以自行引入中間件之外,更重要的是使用了,從而避免了回調(diào)地獄不過也是因為代碼升級,所以需要以上的環(huán)境一創(chuàng)建項目手動創(chuàng)建一個項目目錄, 目錄 一、創(chuàng)建項目二、配置路由三、靜態(tài)資源四、模板引擎五、結(jié)語 Koa 是由 Express 原班人馬打造的超輕量服務(wù)端框架與 Express 相...
閱讀 1215·2021-11-23 09:51
閱讀 1993·2021-10-08 10:05
閱讀 2352·2019-08-30 15:56
閱讀 1911·2019-08-30 15:55
閱讀 2645·2019-08-30 15:55
閱讀 2498·2019-08-30 13:53
閱讀 3510·2019-08-30 12:52
閱讀 1259·2019-08-29 10:57