我为 Vue 编写了一个插件,并在重新渲染时遇到了一些问题。事实上,有一个新的过滤器,它通过全局定义的语言翻译给定的文本。语言更改时,应再次翻译文本。因为这里没有过滤器的事件队列,我想强制所有组件自己重新渲染,如果语言改变的话。因此过滤功能将被评估为新的
我知道我可以使用vm.$forceUpdate()
重新呈现组件本身。但是我如何告诉整个Vue组件树重新渲染?因为这只会发生,如果用户更改语言,性能问题应该不是问题,至少导致用户不必重新加载整个页面并且可以离线执行此操作。
有什么建议吗?
答案 0 :(得分:1)
您可以在组件根目录中使用key
attribute。更改它,组件树将被重新渲染。
Per docs(粗体是我的):
它也可用于强制替换元素/组件 而不是重复使用它。当您想:
时,这非常有用
- 正确触发组件的生命周期挂钩
- 触发转换
例如:
<transition> <span :key="text">{{ text }}</span> </transition>
当
text
发生变化时,<span>
将始终被替换而不是。{ 修补后,将触发转换。