bhuh12 / vue-router-tab

Vue.js tab components, based on Vue Router.

Home Page:https://bhuh12.github.io/vue-router-tab/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

动态页签-通过路由 meta 配置更改title能成功,但是影响了面包屑标题的显示。

megatron817 opened this issue · comments

Bug 描述

修改路由meta里的title(title对应就变成了一个方法),成功实现动态修改页签标题,但是面包屑里的title显示发生了异常了,面包屑里的title显示的是函数字符串,这应该是vue-router-tab组件和面包屑组件共用了一个title的问题,请问有什么好的解决办法呢?

预期行为

面包屑应该显示正常的标题或原有标题

截图

image

代码重现

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里的

我这里试过 computed 是可以的呢
image
image

既然 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 数据导致的。这个是全局的,并非页面内部数据,会共享。