vue-cli 默認(rèn)路由再子路由選中下的選中狀態(tài)問題及解決代碼
vue-cli是Vue.js官方腳手架命令行工具,我們可以用它快速搭建Vue.js項(xiàng)目,vue-cli最主要的功能就是初始化項(xiàng)目,既可以使用官方模板,也可以使用自定義模板生成項(xiàng)目,而且從2.8.0版本開始,vue-cli新增了build命令,能讓你零配置啟動一個Vue.js應(yīng)用。
因項(xiàng)目需求,需要在默認(rèn)路由下面的兩個子路由進(jìn)行切換,當(dāng)開始以為不就是路由切換?so easy!就看一下遇到的問題吧!
{path: '/',component: resolve => require(['@/components/LiveList'],resolve),
children:[
{
path:'',
name:'livelist',
meta:{title:'',index:0},
component: resolve => require(['@/components/compts/livelistcom'],resolve)
},{
path:'livenew',
name:'livenew',
meta:{title:'',index:1},
component: resolve => require(['@/components/compts/livelistnew'],resolve)
}]
},
{
path:'/user',
name:'user',
meta:{title:'用戶',index:4},
component: resolve => require(['@/components/user'],resolve)
},
這路由一看沒問題吧!
<router-link to="/"><p>首頁</p></router-link>//這是底部的切換路由 //下面兩個便是首頁下面的兩個子路由的跳轉(zhuǎn)了 <li><router-link to="/">熱門</router-link></li> <li><router-link to="/livenew">最新</router-link></li>
看到上面的代碼是不是沒有發(fā)現(xiàn)錯誤?其實(shí)也的確可以運(yùn)行!而且兩個子路由切換關(guān)于首頁的狀態(tài)也是沒有問題的!
但是當(dāng)我切換user路由的時候發(fā)現(xiàn),首頁路由的狀態(tài)依舊是選中狀態(tài) ,這個讓我很納悶,按理說user路由跟首頁的路由是同級,不出出現(xiàn)這樣的問題。既然出現(xiàn)了,為了工作,只能迎難而上,去解決這個問題。
在經(jīng)過我仔細(xì)的查找文檔,終于想到了一種解決方案:在官方文檔里面有一個 redirect (重定向) router.vuejs.org/zh/guide/es… 點(diǎn)擊鏈接可以查看官方文檔
既然可以重定向那我就試一下這種來解決(畢竟上面的代碼和邏輯事再想不出是什么地方出的錯誤,還望大神指點(diǎn)一二?。?!)
廢話不多說,直接先解決后的代碼:
{path:'',redirect: '/index'},
{path: '/index',component: resolve => require(['@/components/LiveList'],resolve),
children:[
{path:'',redirect:'livelist'},
{
path:'livelist',
name:'livelist',
meta:{title:'',index:0},
component: resolve => require(['@/components/compts/livelistcom'],resolve)
},{
path:'livenew',
name:'livenew',
meta:{title:'',index:1},
component: resolve => require(['@/components/compts/livelistnew'],resolve)
}]
},
{
path:'/user',
name:'user',
meta:{title:'用戶',index:4},
component: resolve => require(['@/components/user'],resolve)
}
而關(guān)于路由的跳轉(zhuǎn)也有一些小變化:
<router-link to="/index"><p>首頁</p></router-link>//這里依舊是底部導(dǎo)航 //這里便是首頁的兩個子路由的跳轉(zhuǎn)按鈕了 <li><router-link to="/index/livelist">熱門</router-link></li> <li><router-link to="/index/livenew">最新</router-link></li>
構(gòu)思 :用重定向,規(guī)定默認(rèn)路由跳轉(zhuǎn)到上面 /index 下面默認(rèn)的子路由,再由默認(rèn)的子路由去定向到子路由的 livelist 。(這是在解決問題的時候發(fā)現(xiàn),非默認(rèn)路由下,子路由切換不會造成默認(rèn)路由選中不取消的問題,而默認(rèn)路由一直會存在一個 router-link-active的類名,我的選中樣式也是基于它的 )
關(guān)于選中時自定義自己的樣式可以操作.router-link-active 這個類,而默認(rèn)路由一直存在這個類,如果沒有子路由,或者子路由選中不需要顯示父路由也為選中狀態(tài)的情況下,你可以操作.router-link-exact-active這個類來寫自己的選中樣式。
總結(jié)
以上所述是小編給大家介紹的vue-cli 默認(rèn)路由再子路由選中下的選中狀態(tài)問題及解決代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
vant 解決tab切換插件標(biāo)題樣式自定義的問題
這篇文章主要介紹了vant 解決tab切換插件標(biāo)題樣式自定義的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
在vue中利用全局路由鉤子給url統(tǒng)一添加公共參數(shù)的例子
今天小編就為大家分享一篇在vue中利用全局路由鉤子給url統(tǒng)一添加公共參數(shù)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
uni-app中vue3表單校驗(yàn)失敗的問題及解決方法
最近遇到這樣的問題在app中使用uni-forms表單,并添加校驗(yàn)規(guī)則,問題是即使輸入內(nèi)容,表單校驗(yàn)依然失敗,本文給大家分享uni-app中vue3表單校驗(yàn)失敗的問題及解決方法,感興趣的朋友一起看看吧2023-12-12
在vue中v-bind使用三目運(yùn)算符綁定class的實(shí)例
今天小編就為大家分享一篇在vue中v-bind使用三目運(yùn)算符綁定class的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09

