您的位置:首页 > 新闻 > 会展 > 11.怎么做好一个动态标签页

11.怎么做好一个动态标签页

2025/7/29 17:14:04 来源:https://blog.csdn.net/qq_55121347/article/details/141259748  浏览:    关键词:11.怎么做好一个动态标签页

效果

步骤

1.在Elementui找一个标签页组件

复制粘贴到代码

2.将他写活

将很多页面需要用的方法和变量写入store

        editableTabsValue: '2',editableTabs: [{title: '首页',name: 'index',},],
        addTab(state, tab) {if (state.editableTabs.findIndex(item => item.title === tab.title) === -1) {state.editableTabs.push({title: tab.title,name: tab.name,});state.editableTabsValue = tab.name;}},

3.点击事件

点击事件调用这个方法

    selectMenu(menu) {this.$store.commit("addTab", menu);},

4.优化

优化点1:解决可以重复出现标签的问题

加一个判断

            if (state.editableTabs.findIndex(item => item.title === tab.title) === -1) {state.editableTabs.push({title: tab.title,name: tab.name,});state.editableTabsValue = tab.name;}},

优化点2:首页不是子路由,所以要专门写一个

    <!-- 首页菜单项 --><el-menu-item index="/sys/Index" @click="selectMenu({name:'Index',title:'首页'})"><template #title><i class="el-icon-s-home"></i>首页</template></el-menu-item>

优化点3:点击之后他不会进行一个页面的跳转

写一个点击事件

    selectMenu(menu) {this.$store.commit("addTab", menu);},

注意的点

因为我们需要再页面渲染完毕之前,将  editableTabsValue和editableTabs进行计算,所以需要写到computed里面,还有如果有get方法,就必须有set方法,否则无法进行删除

  computed: {editableTabs: {get() {return this.$store.state.menu.editableTabs;},set(val) {this.$store.state.menu.editableTabs = val}},editableTabsValue: {get() {return this.$store.state.menu.editableTabsValue;},set(val) {this.$store.state.menu.editableTabsValue = val}},},

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com