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