(Vue-ElementUI)Tab、Menu联动,点击使用同一组件生成新窗口,路由刷新问题
<template>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane
v-for="item in tabMapOptions"
:key="item.name"
:label="item.label"
:name="item.name"
></el-tab-pane>
</el-tabs>
</template>
<script>
export default {
data() {
return {
activeName: 'first',
tabMapOptions: [
{ label: 'Tab 1', name: 'first' },
{ label: 'Tab 2', name: 'second' }
],
// 存储已打开的tab组件的key
openedTabs: ['first']
}
},
methods: {
handleClick(tab, event) {
const compName = this.activeName;
// 检查是否已打开,打开则不做处理,未打开则加入数组
if (this.openedTabs.indexOf(compName) < 0) {
this.openedTabs.push(compName);
// 这里可以添加代码,用于处理新窗口的组件创建或路由跳转
}
}
}
}
</script>
这个代码实例展示了如何在Vue和Element UI中实现Tab和Menu的联动,当用户点击Tab时,会检查是否已经打开了对应的组件,如果没有,则将其加入到已打开的组件列表中。这个例子简单明了,并且可以作为开发者实现类似功能的参考。
评论已关闭