你能强迫Vue.js重新加载/重新渲染吗?

2022-08-29 23:46:31

只是一个简单的问题。

你能强制重新加载/重新计算所有内容吗?如果是这样,如何?Vue.js


答案 1

试试这个魔法咒语:

vm.$forceUpdate();
//or in file components
this.$forceUpdate();

无需创建任何悬挂式:)

更新:当我才开始使用VueJS时,我发现了这个解决方案。然而,进一步的探索证明了这种方法是拐杖。据我所知,在一段时间内,我摆脱了它,只是将所有未能自动刷新的属性(主要是嵌套的属性)放入计算属性中。

更多信息在这里: https://v2.vuejs.org/v2/guide/computed.html


答案 2

这似乎是matthiasg在这个问题上的一个非常干净的解决方案:

您还可以在想要完全重建组件时使用和更改密钥:key="someVariableUnderYourControl"

对于我的用例,我将Vuex getter作为道具馈送到组件中。不知何故,Vuex会获取数据,但反应性不会可靠地启动以重新渲染组件。在我的例子中,将组件设置为 prop 上的某个属性可以保证在 getters(和属性)最终解析时刷新。key