vue+elemen如何t实现页面顶部tag
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章给大家分享的是有关vue+elemen如何t实现页面顶部tag的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这种tag如何写?思路总结下:1. 页面渲染1页面显示由
千家信息网最后更新 2024年11月26日vue+elemen如何t实现页面顶部tag
这篇文章给大家分享的是有关vue+elemen如何t实现页面顶部tag的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
这种tag如何写?思路总结下:
1. 页面渲染
1页面显示由数组循环得出,数组可存储在store里
(1)存储前判断是否有重复的数据,重复的话,先删除再添加。
(2)没有重复直接push
addTag: (state, tag) => { const { fullPath, path, meta, query } = tag if (tag.path === '/login') { return false } const findIndex = state.tags.findIndex(item => item.path === tag.path) console.log(findIndex) if (findIndex >= 0) { state.tags.splice(findIndex, 1, { fullPath, path, meta, query }) } else { state.tags.push({ fullPath, path, meta, query }) } },
2何时触发这个添加路由方法,监听路由进入的时候,调此方法将当前this实例上的route对象携带过去。
computed: {currentRoute() { return this.$route },}, watch: { $route: { handler(val) { if (val.name) { this.addTags() } }, // 深度观察监听 deep: true } }, methods:{ addTags() { //this.$store.dispatch 先提交给action,由他异步处理处罚mutation里面的方法,改变state里面的tags值 this.$store.dispatch('user/addTag', this.currentRoute) },}
此时,tags数组里面已经有值,由于默认是白色,所以页面上看不出,接下来就是给选中的标签高亮。
1element 有个参数可以设定,可以查文档。
2选中的tag值是否等于当前路由进入的页面一致,一致则为true。
{{ tag.meta.title }} methods:{ setTagColor(tag) { return this.currentRoute.path === tag.path ? 'dark' : 'plain' }, }
此时,tag的渲染和选中就完成了。
2. 来回切换tag
methods:{ toTagRoute(tag) { this.$router.push({ path: tag.fullPath || tag.path }) },}
3. 删除一个tag标签
1由于是数组,你无法确定用户删除哪一个,所以需要遍历找出用户当前选中的tag。然后删除,同时更新store里的值。
2删除当前tag,高亮的标签是哪一个?这里是删除标签的前一个标签,也就是数组最后一个元素。
methods:{ closeTags(tag) { console.log(tag, 4444) this.$store.dispatch('user/delTag', tag) this.toLastTagRouter(this.$store.state.user.tags)//高亮删除标签的前一个tag }, toLastTagRouter(tags) { //注意此处传入tags是已删除后的,所以不能使用splice==》改变原数组;slice==》不改变原数组拿去数组最后一个元素 const latestView = tags.slice(-1)[0]//tags数组最后一个元素 console.log(latestView) if (latestView !== undefined && latestView.path !== undefined) { const { fullPath, meta, path, query } = latestView this.$router.push({ fullPath, meta, path, query }) } },}//action delTag({ commit }, tag) { commit('delTag', tag) },//mutationdelTag: (state, tag) => { //entries()对象变成一个可遍历的数组【0,{name:a,age:'20'}】 //这里使用forEach和map也可以 for (const [i, v] of state.tags.entries()) { if (v.path === tag.path) { state.tags.splice(i, 1) break } } },
删除全部标签
methods:{ closeAllTags() { // 关闭所有 tag,仅剩余一个 this.$store.dispatch('user/delAllTags') const { fullPath, meta, path, query } = this.$store.state.user.tags[0] // 跳转剩余 tag 路由 this.$router.push({ fullPath, meta, path, query }) },}//actiondelAllTags({ commit }) { commit('delAllTags') },//mutation delAllTags: (state) => { state.tags.splice(1, state.tags.length) },
感谢各位的阅读!关于"vue+elemen如何t实现页面顶部tag"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
数组
标签
页面
路由
元素
高亮
顶部
一致
内容
对象
方法
更多
用户
篇文章
剩余
存储
监听
不错
实用
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
为什么服务器
希望之谷怎么进mc服务器
四川省小学生网络安全教育平台
网络技术分享qq
闵行区微型软件开发厂家现货
如何搭建oracal数据库
互联网 医学科技
通信网络技术的发展及其未来方向
数据库实验原理报告
软件开发规范
学习网络技术用什么书
网络安全派出所管
水星服务器推荐
软件开发语言sp
软件开发项目进展流程图分析
电脑怎么进网络安全
网络安全周青少年日活动讲话
云车网络技术有限公司官网
日本服务器con
网络安全答题ppt模板
linux服务器发包教程
确保强化了系统安全和网络安全
健全()网络安全在线监测机制
网络安全高中分数
学习网络技术用什么书
云服务器售价
服务器错误英语
安庆电商平台软件开发公司
服务器系统工程师面试
网络安全校园广播宣传