vue?iview?導(dǎo)航高亮動(dòng)態(tài)設(shè)置方式
vue iview導(dǎo)航高亮動(dòng)態(tài)設(shè)置
在開發(fā)的是時(shí)候,路由發(fā)生了跳轉(zhuǎn)但是發(fā)現(xiàn)導(dǎo)航的沒有進(jìn)行高亮設(shè)置,在iview的menu組件中控制高亮的是active-name,現(xiàn)在動(dòng)態(tài)設(shè)置active-name 完成高亮
<Menu :active-name="activeName" theme="light" width="auto" :open-names="['2','3','4']"> <Submenu name="2"> <template slot="title"> <Icon type="ios-navigate"></Icon> 信息查詢 </template> <MenuItem name="travel/" to="travel">信息查詢</MenuItem> </Submenu> <Submenu name="3" v-if="is_super"> <template slot="title"> <Icon type="ios-keypad"></Icon> 信息管理 </template> <MenuItem name="TravelManage" to='TravelManage'>信息管理</MenuItem> </Submenu> <Submenu name="4"> <template slot="title"> <Icon type="ios-contact"></Icon> 個(gè)人信息 </template> <MenuItem name="UserInform" to='UserInform'>個(gè)人資料</MenuItem> </Submenu> </Menu>
export default { name: '', data() { return { activeName: this.$router.path, } }, methods:{ menuList(){ // 這個(gè)方法里定義好,高亮和路由 let path = this.$route.matched[1].path this.activeName=path.substr(1) } }, mounted() { this.menuList() } }
vue element導(dǎo)航欄高亮顯示問題
用導(dǎo)航菜單時(shí)遇到的一些問題:點(diǎn)擊打開官網(wǎng)例子
問題1
頁面強(qiáng)制刷新,按F5時(shí),頁面如果沒有好好設(shè)置的話,導(dǎo)航欄默認(rèn)疊起來,而且無高亮顯示;刷新后導(dǎo)航欄顯示和之前不一致,如圖所示
解決:
html關(guān)鍵代碼設(shè)置 :default-active="defaultUrl"
這兒的原理就是defaultUrl跟#/后面的一致,也就是說跟router.js中的path一致才行(router.js見后文)
window.location.href.split('/#')[1] 獲取的是"http://localhost:8080/#/search-contact/1"中的"/search-contact/1"
這樣設(shè)置后,無論如何刷新頁面,頁面都會(huì)高亮顯示當(dāng)前url
問題2
點(diǎn)擊瀏覽器前進(jìn)后退按鈕導(dǎo)致高亮顯示不同步,
解決問題關(guān)鍵,和問題一原理一樣,當(dāng)路由變化時(shí),改變默認(rèn)顯示高亮的值
//監(jiān)聽路由變化 watch: { '$route':'getPath' }, methods: { getPath(){ this.defaultUrl = this.$route.path; } },
補(bǔ)充:
以上,div和js文件在設(shè)置菜單欄的menu.vue文件下。
router.js里面這樣設(shè)置
import Vue from 'vue'; import Router from 'vue-router'; Vue.use(Router); import Home from './views/home'; import SearchProperty from './views/search/search-property'; import SearchListing from './views/search/search-listing'; import SearchContact from './views/search/search-contact'; import SearchSchool from './views/search/search-school'; export default new Router({ routes: [ {name: 'home', path: '/', component: Home}, {name: 'search-property', path: '/search-property/:pageNum', component: SearchProperty}, {name: 'search-contact', path: '/search-contact/:pageNum', component: SearchContact}, {name: 'search-listing', path: '/search-listing/:pageNum', component: SearchListing}, {name: 'search-school', path: '/search-school/:pageNum', component: SearchSchool}, ], });
補(bǔ)充:這是目前發(fā)現(xiàn)最簡(jiǎn)單的一種方法
<el-menu router :default-active="$route.path"> </el-menu>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue報(bào)錯(cuò)Not?allowed?to?load?local?resource的解決辦法
這篇文章主要給大家介紹了關(guān)于vue報(bào)錯(cuò)Not?allowed?to?load?local?resource的解決辦法,這個(gè)錯(cuò)誤是因?yàn)閂ue不能加載本地資源的原因,需要的朋友可以參考下2023-07-07公共Hooks封裝useTableData表格數(shù)據(jù)實(shí)例
這篇文章主要為大家介紹了公共Hooks封裝useTableData表格數(shù)據(jù)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12vue通過element樹形控件實(shí)現(xiàn)樹形表格
這篇文章主要為大家介紹了vue?element樹形控件實(shí)現(xiàn)樹形表格,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-11-11vite配置別名并處理報(bào)錯(cuò):找不到模塊“xxx”或其相應(yīng)的類型聲明方法詳解
我在學(xué)習(xí)vue3+vite+ts的時(shí)候,在配置別名這一步的時(shí)候遇到了一個(gè)問題,這篇文章主要給大家介紹了關(guān)于vite配置別名并處理報(bào)錯(cuò):找不到模塊“xxx”或其相應(yīng)的類型聲明的相關(guān)資料,需要的朋友可以參考下2022-11-11詳解element上傳組件before-remove鉤子問題解決
這篇文章主要介紹了詳解element上傳組件before-remove鉤子問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Vue 父子組件數(shù)據(jù)傳遞的四種方式( inheritAttrs + $attrs + $listeners)
這篇文章主要介紹了Vue 父子組件數(shù)據(jù)傳遞的四種方式( inheritAttrs + $attrs + $listeners),需要的朋友可以參考下2018-05-05