当前位置: 首页 > news >正文

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}},},

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 设计模式21-组合模式
  • P37-数据存储
  • 数据可视化:解锁数据奥秘的钥匙与实战指南
  • 力扣每日一题 特殊数组 II 前缀和
  • 分析 avformat_open_input 数据读取过程
  • 软件需求设计分析报告(Word原件)
  • nginx核心配置示例
  • 基于LangChain手工测试用例转接口自动化测试生成工具!
  • 第七章数据安全10分
  • Excel求和方法之
  • Pytorch如何判断两个模型的权重是否相同(比较权重差异/参数字典)
  • 推荐适合七夕的SVG模版(第II期)
  • FreeBSD启动后进入单用户模式,但是发现zfs系统是只读的,应该怎样挂载成可读可写呢?
  • SpringCloudAlibaba基础七-2 seata的使用
  • Docker Swarm
  • 2017前端实习生面试总结
  • axios 和 cookie 的那些事
  • Consul Config 使用Git做版本控制的实现
  • ES6系列(二)变量的解构赋值
  • leetcode386. Lexicographical Numbers
  • scala基础语法(二)
  • Selenium实战教程系列(二)---元素定位
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何优雅地使用 Sublime Text
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 智能合约开发环境搭建及Hello World合约
  • 终端用户监控:真实用户监控还是模拟监控?
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • (21)起落架/可伸缩相机支架
  • (23)Linux的软硬连接
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (javaweb)Http协议
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (三)elasticsearch 源码之启动流程分析
  • (顺序)容器的好伴侣 --- 容器适配器
  • (算法)求1到1亿间的质数或素数
  • (转)ORM
  • (转)母版页和相对路径
  • (转)我也是一只IT小小鸟
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • .net core Swagger 过滤部分Api
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @component注解的分类
  • @KafkaListener注解详解(一)| 常用参数详解
  • @ModelAttribute使用详解
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [ 转载 ] SharePoint 资料
  • [Angular] 笔记 21:@ViewChild
  • [AX]AX2012开发新特性-禁止表或者表字段