vue升級之路之vue-router的使用教程
使用 Vue 構(gòu)建的項目,一個頁面是由多個組件構(gòu)成的,而且經(jīng)常是做成單頁面應用,所以在跳轉(zhuǎn)頁面的時候,傳統(tǒng)的 href 已經(jīng)跟不上時代的步伐了,于是 vue-router 應運而生
在使用 vue-router 的時候,需要看看自己是否裝了這個依賴,沒有的話可以使用 npm install vue-router -S
,不過現(xiàn)在構(gòu)建vue項目時有可以選擇是否安裝 vue-router,大家注意一下就行了
一、路由的配置
自動安裝的vue-router,會在src 文件夾下有個一個 router -> index.js 文件 在 index.js 中創(chuàng)建 routers 對象,引入所需的組件并配置路徑
在創(chuàng)建的 routers 對象中, path 配置了路由的路徑,component 配置了映射的組件
然后在main.js里面引入router文件
在創(chuàng)建的 router 對象中,如果不配置 mode,就會使用默認的 hash 模式,該模式下會將路徑格式化為 #! 開頭。
添加 mode: 'history' 之后將使用 HTML5 history 模式,該模式下沒有 # 前綴,而且可以使用 pushState 和 replaceState 來管理記錄。
關(guān)于 HTML5 history 模式的更多內(nèi)容,可以自行度娘
二、嵌套路由
在構(gòu)建的vue實例中,為了加深項目層級,App.vue 只是作為一個存放組件的容器
其中 是用來渲染通過路由映射過來的組件,當路徑更改時, 中的內(nèi)容也會發(fā)生更改
上面已經(jīng)配置了兩個路由,當打開 http://localhost:8080 或者 http://localhost:8080/index的時候,就會在 中渲染 index.vue 組件 index.vue 是真正的父組件,其它的子組件都會渲染到 index.vue 中的
想要在一級路由中實現(xiàn)嵌套二級路由,就要修改 router -> index.js
在配置的路由后面,添加 children,并在 children 中添加二級路由,就能實現(xiàn)路由嵌套。 配置 path 的時候,以 " / " 開頭的嵌套路徑會被當作根路徑,所以子路由的 path 需不需要添加 " / " 就要看個人需求了
三、使用 映射路由
如果只需要跳轉(zhuǎn)頁面,不需要添加驗證方法的情況,可以使用 來實現(xiàn)導航的功能:
<router-link class="item" to="/index/login" >{{ text }}</router-link> <router-link class="item" :to="{path:url, query:data}" >{{ text }}</router-link>
在編譯之后, 會被渲染為 標簽, to 會被渲染為 href,當 被點擊的時候,url 會發(fā)生相應的改變
如果使用 v-bind 指令,還可以在 to 后面接變量,配合 v-for 指令可以渲染路由菜單
如果需要傳入不同參數(shù) ,可以在路由中添加動態(tài)參數(shù),給 to 傳入一個對象
{ path: item.url, query: { id: '007' } }
然后還可以使用 $ route.query.id
來獲取到對應的參數(shù)
四、編程式導航
然而在實際項目下,有很多鏈接在執(zhí)行跳轉(zhuǎn)之前,還會執(zhí)行方法對數(shù)據(jù)進行處理,這時可以使用 this.$router.push(location) 來修改 url 完成跳轉(zhuǎn)
// 綁定goLogin <button class="login" @click="goLogin"></button> // 定義goLogin methods: { goLogin() { this.routes.push('/login') } },
push 后面可以是對象,也可以是字符串:
// 字符串 this.$router.push('/index') // 對象 this.$router.push({ path: '/index' }) // 命名的路由 this.$router.push({ name: 'login', params: { userId: '123' }})
相關(guān)文章
vue2.0實現(xiàn)的tab標簽切換效果(內(nèi)容可自定義)示例
這篇文章主要介紹了vue2.0實現(xiàn)的tab標簽切換效果,結(jié)合實例形式分析了vue.js實現(xiàn)內(nèi)容可自定義的tab點擊切換功能相關(guān)操作技巧,需要的朋友可以參考下2019-02-02基于Vue3實現(xiàn)數(shù)字華容道游戲的示例代碼
這篇文章主要為大家詳細介紹了如何利用Vue編寫一個數(shù)字華容道游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04vue中阻止click事件冒泡,防止觸發(fā)另一個事件的方法
下面小編就為大家分享一篇vue中阻止click事件冒泡,防止觸發(fā)另一個事件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02elementUI Tree 樹形控件單選實現(xiàn)示例
在ElementUI中樹形控件本身不支持單選功能,本文就來介紹一下如何實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-06-06vue跳轉(zhuǎn)頁簽傳參并查詢參數(shù)的保姆級教程
這篇文章主要介紹了vue跳轉(zhuǎn)頁簽傳參并查詢參數(shù)的保姆級教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04