項目中有一個編輯試卷的頁面,當(dāng)用戶編輯一半的時候,如果退出該頁面蜂挪,彈出一個提示框,是否保存嗓化?
我用的是vue-router的beforeRouteLeave棠涮,但是出現(xiàn)了一個問題,當(dāng)用戶點擊側(cè)邊欄的目錄刺覆,頁面的路由沒有改變严肪,但是點擊的側(cè)邊欄會先高亮,如果用戶點擊取消谦屑,此時的側(cè)邊欄定位就會出現(xiàn)錯誤
image.png
解決方法:
在layout里面的menu組件驳糯,把原來點擊事件就賦值給selectKey,去掉,加一個watch監(jiān)聽氢橙,當(dāng)前頁面的路由是否改變酝枢,改變了才去賦值。
watch:{
$route(to){
this.location(to.path.split('/'))
}
},
methods:{
let page=arr[arr.length-1]
if(page=='operation'){
page=window.location.search.split('&')[0].split('=')[1]
}else if(page=='paperEdit'){
page=window.location.search.split('&')[0].split('=')[1]
}
switch(page){
case 'certManage' : this.selectedKeys=['1'];this.openKeys=['sub1']
break;
.......
}