动态页签-通过路由 meta 配置更改title能成功,但是影响了面包屑标题的显示。
megatron817 opened this issue · comments
Bug 描述
修改路由meta里的title(title对应就变成了一个方法),成功实现动态修改页签标题,但是面包屑里的title显示发生了异常了,面包屑里的title显示的是函数字符串,这应该是vue-router-tab组件和面包屑组件共用了一个title的问题,请问有什么好的解决办法呢?
预期行为
面包屑应该显示正常的标题或原有标题
截图
代码重现
meta: {
title: route => `${route.query.pageTitle}-${route.query.realName}`
}
开发环境(请填写以下信息)
- Vue Router Tab: 1.2.0
运行环境(请填写以下信息)
- 设备: PC
- 操作系统: Windows 7
- 浏览器和版本: Chrome 86.0.4240.75 x64
附加内容
之前有尝试过动态页签-通过 computed 计算属性
来修改页签标题,但是我发现所有被缓存页面的computed属性的routeTab都被改变了,也就是说,我修改了一个页面的页签标题,当我切换到其他页面时,上一个页面本来已经改好的页签标题就失效了。
我后面采用通过路由 meta 配置
来动态修改页签标题,功能是实现了,但是面包屑又挂了,所以才提出这个issue,我觉得有可能是meta中title的问题,最初是字符串,后面改成了函数,它就显示出了函数。
面包屑组件是Ant Design Vue Pro
里的
既然 Ant Design 的 Title 不支持 title 函数方式,就只能用字符串了。
动态标题 computed
不行的花你参考 通过 data 响应数据
试试
https://bhuh12.gitee.io/vue-router-tab/zh/guide/advanced/dynamic-tab-info.html#%E9%80%9A%E8%BF%87-data-%E5%93%8D%E5%BA%94%E6%95%B0%E6%8D%AE
我之前使用过通过 data 响应数据
这个方式,不过没有成功,但是今天上午尝试过后却成功了。
我觉得应该是之前采用这个方式时,没有把通过 computed 计算属性
方式有关代码给注释干净(很多页面写了的)。
目前,问题已解决,感谢大佬的指点!
但是我发现所有被缓存页面的computed属性的routeTab都被改变了
这个应该是直接用 $router 数据导致的。这个是全局的,并非页面内部数据,会共享。