*問題描述:*遇到一個需求,使用el-tabs裏面引入了4個子組件,在其中某一個子組件刷新的之後,總是tab選中默認的el-tab-pane label,需要變成選中刷新之前的el-tab-pane label
父組件中 tab下面引入了3個組件
<template>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="子組件1" name="first">
<child1></child1>
</el-tab-pane>
<el-tab-pane label="子組件2" name="first">
<child1></child1>
</el-tab-pane>
<el-tab-pane label="子組件3" name="first">
<child1></child1>
</el-tab-pane>
</el-tabs>
</template>
export default {
data() {
return {
activeName: 'first'
};
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
}
}
};
子組件3中,修改完之後,需要進行刷新,這邊是刷新整個父組件(如果是單獨刷新子組件,應該就不會出現我這樣的問題了),但是刷新之後,就會默認選中子組件1,交互不是很好,思路想辦法保存當前的activeName的值,採用sessionStorage
子組件3中修改成功之後
update function(){
//更新頁面
//保存當前activeName
sessionStorage.setItem('currentTab', 'third')
}
然後在父組件的鉤子方法中
mounted() {
// debugger
let name = sessionStorage.getItem('currentTab')
// 這裏如果沒值,返回的是字符串'undefind'
if (name != "undefined" && name){
this.activeName = name;
}
}
上面問題記錄下,有不正確的,歡迎指正==