目录

需求描述

分析及尝试

效果实现


需求描述

最近在做使用若依的管理系统框架做项目,在做前端的一个需求的时候发现,在路由跳转时,发现的title只能设置为常量,在进行了不少的搜索依旧没找到如何将title值设置为变量的方法,可是当我需要根据点击的不同链接显示成不同的title应该怎么办呢?后来也发现了可以在vue的生命周期中做些文章,主要的思路就是将要显示的title值也作为参数通过路由传过去,再对其进行title的动态修改。下面说说我的实现过程和遇到的问题。

分析及尝试

既然显示的标题是根据路由中的title值决定的,那么在打开的页面修改其中的title值是不是就应该能完成这个需求呢?接下来就开始实现我的想法:

  1. 在路由的js中,将跳转过去的路由地址meta中的title删去,否则导航的面包屑会直接取路由中的名称,
  2. beforeCreate中取到当前路由的title,并设置title为路由地址中传过来的变量
{path: '/data',component: Layout,hidden: true,children: [{path: 'syncData/:myTitle',component: (resolve) => require(['@/views/data/syncData'], resolve),name: 'SyncData',/*将这行代码注释 meta: { title: '固定的标题' } */}]
}
beforeCreate () {this.$route.meta.title = `我的专属名称${this.$route.params.myTitle}`
}

但还是出现了第一次点击跳转后,标签的标题会显示为no-name(仅仅只有面包屑处是显示“我的专属名称”),需要关闭标签后再次打开才会显示为我们传的myTitle变量值。而后使用了chrome的vue开发插件查看发现在修改了this.$route.meta.title后,实际的tabs组件对应的标签页下title还是没有改变,既然是因为tabs组件下的标签页title没变,那我们就只能再手动修改它了。

效果实现

在这之后又想起若依通过vuex将标签组件存放在了Store中,我们可以通过取Store.getters中的tagsView取到组件并修改其下的title变量

/** 当前文件是getters.js */
const getters = {sidebar: state => state.app.sidebar,size: state => state.app.size,device: state => state.app.device,/* tags中是遍历visitedViews进行展示的 */visitedViews: state => state.tagsView.visitedViews,cachedViews: state => state.tagsView.cachedViews,token: state => state.user.token,avatar: state => state.user.avatar,name: state => state.user.name,introduction: state => state.user.introduction,roles: state => state.user.roles,permissions: state => state.user.permissions,permission_routes: state => state.permission.routes
}
export default getters
/** 当前文件是store下的index.js*/
import tagsView from './modules/tagsView'Vue.use(Vuex)const store = new Vuex.Store({modules: {// ... ...// 还有其他代码,此处无关,不列出},getters
})
export default store

最终的程序如下

beforeCreate () {// 可有可无,在面包屑中展示this.$route.meta.title = `我的专属名称${this.$route.params.myTitle}`// 找到当前tab并修改当前tab显示的标题let currentView = this.$store.getters.visitedViews[this.$store.getters.visitedViews.findIndex((item) => item.path === this.$route.path)]if (currentView != null) {currentView.title = `我的专属名称${this.$route.params.myTitle}`}
}

不过依然有美中不足的情况,就是在页面打开后可能会延迟两三秒后才会将title显示为我们最终想显示的值,不过这暂时满足了我们的需求,研究也暂时到这里停止了。如果有更好的方式,希望大家可以留言并纠正我。

才疏学浅,如文中有错误,感谢大家指出。

ElementUI使用el-tabs进行路由跳转时动态修改页签的标题相关推荐

  1. 路由跳转时的页面状态保存

    前言 我们在开发网页时,经常会遇到一种情况--在一个页面对页面初始状态进行了修改(如已请求到的数据.表单数据.滚动高度等等),跳转到另外一个页面之后再返回到原页面(路由回退),原页面需要保持原先的状态 ...

  2. vue 项目 路由跳转时,ie报错 缺少')'

    vue 项目 路由跳转时,ie报错 缺少')' 报错信息 解决办法 报错信息 vue项目中使用了vue-echarts,项目启动后,在chrome上路由跳转没问题,但是在ie的控制台报"缺少 ...

  3. Vue路由跳转时导航栏更新

    Vue路由跳转时导航栏更新 问题描述 在调用函数中跳转路由,但是侧边栏没有更新激活的高亮状态 排查 查看路由跳转后,侧边栏中active_index的session储存正常 由于侧边栏由组件引入,所以 ...

  4. Jquery UI Tabs 动态添加页签,并跳转到新页签

    需求: 1.tabs默认只有一个页签,但是需要点击某按钮,动态添加页签(添加多个) 2.tabs动态添加页签后,需要跳转到新添加的页签 查找tabs api以及tabs的源码后,发现tabs没有直接实 ...

  5. React使用路由跳转时控制台报Cannot update during an existing state transition (such as within `render`)错误

    React使用路由跳转时控制台报Cannot update during an existing state transition (such as within render).Render met ...

  6. Angular中使用JS实现路由跳转、动态路由传值、get方式传值

    场景 Angular介绍.安装Angular Cli.创建Angular项目入门教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  7. Angular路由跳转时,如何传递信息

    我们期望实现的场景:从product list Component点击产品名称超链接时,能跳转到product detail Component,显示选中的product的明细信息. 在product ...

  8. React路由跳转时通过传参进行动态渲染的方法

    最近在react项目中,需要根据点击元素的不同,而切换同一个路由地址下的一个Tab选项卡的不同区域中,我采用的是通过在路由跳转时候顺带传值的方法,通过值的不同而切换到选项卡的不同区域中. 首先是pag ...

  9. Vue3(撩课学院)笔记07-vueRouter路由,创建路由,路由重定向,路由跳转,动态路由,路由懒加载,路由嵌套,路由参数穿传递的两种形式,通过事件来跳转路由

    1.vueRouter路由的两种模式 哈希模式:以#号分割,前端路由一般用hash模式比较多,可以兼容ie8以上,井号后面不发起请求 历史模式:putstate()和replaceState()方法入 ...

最新文章

  1. 专有云到混合云,是云计算的下半场?
  2. SAP Spartacus outlet.directive.ts里this.templateRef的来源
  3. mysql zpi版的如何配置_Mysql zip版 安装配置
  4. arraychangekeycase php,浅谈php数组array_change_key_case() 函数和array_chunk()函数
  5. maven设置socks代理
  6. axurerp折线图控件_Axure教程:如何画出曲线图?
  7. 超大背包问题(折半枚举, 双向搜索)
  8. 指尖初体验之手指的舞蹈
  9. 2019最新超详细HUSTOJ在线判题系统及Virtual Judge的搭建
  10. 批准此iphone 前往已登录iCloud的其他设备来批准这台iPhone
  11. Dota 游戏中的攻击与伤害分析
  12. 10.11-数据库mysql
  13. 小孩子有没有学机器人编程的必要
  14. 一文掌握华为全过程项目管理的方法步骤和具体动作【墙裂推荐】
  15. 百度数据实习生面试经历—2019.4.15
  16. 0-1背包问题python实现
  17. 微信小程序将时间戳转为日期格式
  18. 5G真的有那么重要吗?
  19. netbeans java项目_如何在NetBeans中组合两个Java项目
  20. 笨办法学python第五版_最新《笨办法学python》学习笔记

热门文章

  1. python人民邮电出版社_《人民邮电出版社PYTHON数据分析(第2版)》【价格 目录 书评 正版】_中国图书网...
  2. mac qq有网 浏览器没网
  3. 使用Java接口模拟给员工发工资
  4. data flow(数据流图)
  5. GraphCodeBERT: Pre-Training Code Representation With Data Flow
  6. 生活不易,未来的路还很长
  7. 那几个学校的计算机复试考上机,计算机考研复试,别想的太难了!
  8. 正常时间转成时间戳,时间戳和当前时间比较
  9. 苹果系统VMware tool安装,实现虚拟系统全屏化
  10. FreeSurfer的安装及使用(个人踩坑记录)