Vue - 强制重新渲染所有组件

时间:2018-03-12 08:40:05

标签: javascript vue.js vuejs2 model-view rerender

我为 Vue 编写了一个插件,并在重新渲染时遇到了一些问题。事实上,有一个新的过滤器,它通过全局定义的语言翻译给定的文本。语言更改时,应再次翻译文本。因为这里没有过滤器的事件队列,我想强制所有组件自己重新渲染,如果语言改变的话。因此过滤功能将被评估为新的 我知道我可以使用vm.$forceUpdate()重新呈现组件本身。但是我如何告诉整个Vue组件树重新渲染?因为这只会发生,如果用户更改语言,性能问题应该不是问题,至少导致用户不必重新加载整个页面并且可以离线执行此操作。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以在组件根目录中使用key attribute。更改它,组件树将被重新渲染。

Per docs(粗体是我的):

  

它也可用于强制替换元素/组件   而不是重复使用它。当您想:

时,这非常有用      
      
  • 正确触发组件的生命周期挂钩
  •   
  • 触发转换
  •   
     

例如:

     
<transition>
   <span :key="text">{{ text }}</span>
</transition>
     

text发生变化时,<span>将始终被替换而不是。{   修补后,将触发转换。