關(guān)于element?ui的菜單default-active默認(rèn)選中的問(wèn)題
element ui的菜單default-active默認(rèn)選中
代碼如下
<el-menu router :default-active="currentMenu" active-text-color="#7BE4FF" :unique-opened="true"> // 此處navMenu 組件中:index="navMenu.sn" <navMenu :navMenus="menuData"></navMenu> </el-menu>
watch: {
'$route' (to, from) {
this.getCurrentMenu()
}
},
methods: {
getCurrentMenu () {
// 獲取當(dāng)前頁(yè)面 菜單刷新后能自動(dòng)選中
let currentUrl = window.location.href
let currentPage = currentUrl.split('/')[3].replace('#', '')
this.currentMenu = currentPage
}
}問(wèn)題如下
切換菜單,中的navMenu.sn===default-active的值一致,選中高亮正常。
但是?。?/p>
后退到首頁(yè),菜單樹(shù)里navMenu.sn沒(méi)有首頁(yè)home這個(gè)路由,navMenu.sn!==default-active選中前一個(gè)高亮始終不變。
照理說(shuō),navMenu.sn!==default-active不應(yīng)該選中高亮菜單才對(duì)。
于是思考
1、確認(rèn):index="navMenu.sn"的值和:default-active="currentMenu"的值是一致的
2、確認(rèn)菜單樹(shù)所有的navMenu.sn全部存在且唯一的
3、確認(rèn)樹(shù)生成在前,給default-active賦值再后,可以通過(guò)setTimeout延遲改變currentMenu的值,發(fā)現(xiàn)若改成存在的菜單,選中高亮正常,若設(shè)置為空或不存在的菜單,選中高亮停留在前一個(gè)。
4、官方文檔NavMenu導(dǎo)航菜單有一個(gè)回調(diào)事件,select:菜單激活回調(diào),index: 選中菜單項(xiàng)的 index, indexPath: 選中菜單項(xiàng)的 index path,按照例子的寫(xiě)法加了之后,問(wèn)題仍然存在。
5、手上兩個(gè)系統(tǒng),同樣的用到了element ui的NavMenu導(dǎo)航菜單,一個(gè)存在問(wèn)題一個(gè)不存在。
對(duì)比代碼發(fā)現(xiàn)沒(méi)有什么不同,費(fèi)解。
最后發(fā)現(xiàn)
兩個(gè)項(xiàng)目element-ui引用的版本不對(duì)

于是乎查看el-menu的源碼(左-v2.4.2;右-v2.4.11)

果然對(duì)default-active的處理不一樣……
所以最后解決辦法就是更新引用的element-ui的版本啊……
更新版本
更新至最新版本v2.8.2
1、刪除node_modules下的element-ui文件夾
2、運(yùn)行命令npm install --save,將默認(rèn)下載package.json中配置的大版本下的最新版本
若下載的版本不是最新
1、刪除node_modules下的element-ui文件夾
2、找到package-lock.json文件里"element-ui"配置的那一大段,刪掉,保存文件。
3、運(yùn)行命令npm install --save,將默認(rèn)下載最新版本
更新完查看源碼確認(rèn)

退回至原始版本v2.4.2
運(yùn)行命令npm install --save element-ui@2.4.2
PS:
修改package.json文件里"element-ui"的版本號(hào),改"2.4.11",為 “2.4.2”,再npm install并沒(méi)有什么用處。
因?yàn)閚pm install 將默認(rèn)下載package.json中配置的大版本下的最新版本,如需鎖定版本,去掉package.json中配置的版本號(hào)前面的小尖尖^。
最新說(shuō)明
當(dāng)前使用element ui@2.15.1好像沒(méi)有文中的問(wèn)題了,貌似官方修復(fù)了這個(gè)bug。
element菜單默認(rèn)展開(kāi)和選中

這兩個(gè)屬性
- :default-openeds="openeds"
- default-active="/networkConfig"中設(shè)置的要與數(shù)組中的index保持一致。
openeds也是數(shù)組

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue使用highcharts自定義圖例點(diǎn)擊事件
這篇文章主要為大家詳細(xì)介紹了vue使用highcharts自定義圖例點(diǎn)擊事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Vue的watch和computed方法的使用及區(qū)別介紹
Vue的watch屬性可以用來(lái)監(jiān)聽(tīng)data屬性中數(shù)據(jù)的變化。這篇文章主要介紹了Vue的watch和computed方法的使用及區(qū)別,需要的朋友可以參考下2018-09-09
vue+js點(diǎn)擊箭頭實(shí)現(xiàn)圖片切換
這篇文章主要為大家詳細(xì)介紹了vue+js點(diǎn)擊箭頭實(shí)現(xiàn)圖片切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
vue實(shí)現(xiàn)綁定事件的方法實(shí)例代碼詳解
這篇文章主要介紹了vue實(shí)現(xiàn)綁定事件的方法實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
element?實(shí)現(xiàn)導(dǎo)航欄收起展開(kāi)功能及思路
這篇文章主要介紹了element?實(shí)現(xiàn)導(dǎo)航欄收起展開(kāi)功能,實(shí)現(xiàn)思路先給 el-menu加上 :collapse="isCollapse" 屬性,這個(gè)屬性也是 element 上的一個(gè)參數(shù),意思為是否開(kāi)啟折疊動(dòng)畫(huà),在 data 中定義 isCollapse ,用 true 和 false 控制展開(kāi)與收起,需要的朋友可以參考下2023-01-01
vue如何監(jiān)聽(tīng)對(duì)象或者數(shù)組某個(gè)屬性的變化詳解
這篇文章主要給大家介紹了關(guān)于vue如何監(jiān)聽(tīng)對(duì)象或者數(shù)組某個(gè)屬性的變化,在Vue.js中可以通過(guò)watch監(jiān)聽(tīng)屬性變化并動(dòng)態(tài)修改其他屬性的值,watch通過(guò)監(jiān)聽(tīng)器函數(shù)接收新舊值,實(shí)現(xiàn)屬性間的數(shù)據(jù)聯(lián)動(dòng),需要的朋友可以參考下2024-12-12
Vue3通過(guò)hooks方式封裝節(jié)流和防抖的代碼詳解
vue3 中的 hooks 就是函數(shù)的一種寫(xiě)法,就是將文件的一些單獨(dú)功能的js代碼進(jìn)行抽離出來(lái),放到單獨(dú)的js文件中,或者說(shuō)是一些可以復(fù)用的公共方法/功能,本文給大家介紹了Vue3通過(guò)hooks方式封裝節(jié)流和防抖,需要的朋友可以參考下2024-10-10
淺談VUE項(xiàng)目打包后運(yùn)行頁(yè)面一片白問(wèn)題
本文主要介紹了淺談VUE項(xiàng)目打包后運(yùn)行頁(yè)面一片白問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2023-01-01

