只是一个简单的问题。
你能强迫Vue.js重新加载/重新计算所有内容吗?如果有,怎么做?
只是一个简单的问题。
你能强迫Vue.js重新加载/重新计算所有内容吗?如果有,怎么做?
当前回答
请读一读 http://michaelnthiessen.com/force-re-render/
可怕的方式:重新加载整个页面 更好的方法:使用Vue的内置 最好的方法:在你的 组件
<template>
<component-to-re-render :key="componentKey" />
</template>
<script>
export default {
data() {
return {
componentKey: 0,
};
},
methods: {
forceRerender() {
this.componentKey += 1;
}
}
}
</script>
在某些情况下,我也用watch。
其他回答
使用vm。美元(varName,价值)。
在Change_Detection_Caveats中查看详细信息
为了重新加载/重新渲染/刷新组件,停止长编码。Vue.JS可以做到这一点。
只需使用:key属性。
例如:
<my-component :key="unique" />
我正在使用BS Vue表槽。我要为这个组件做一些事情,让它是唯一的。
我找到了一个办法。这有点俗气,但很管用。
vm.$set("x",0);
vm.$delete("x");
其中vm是视图模型对象,x是一个不存在的变量。
Vue.js会在控制台日志中抱怨这个问题,但它确实会触发所有数据的刷新。使用版本1.0.26进行测试。
请读一读 http://michaelnthiessen.com/force-re-render/
可怕的方式:重新加载整个页面 更好的方法:使用Vue的内置 最好的方法:在你的 组件
<template>
<component-to-re-render :key="componentKey" />
</template>
<script>
export default {
data() {
return {
componentKey: 0,
};
},
methods: {
forceRerender() {
this.componentKey += 1;
}
}
}
</script>
在某些情况下,我也用watch。
试试这个神奇的咒语:
vm.$forceUpdate();
//or in file components
this.$forceUpdate();
不需要创建任何悬挂变量:)
更新:当我刚开始使用VueJS时,我发现了这个解决方案。然而,进一步的探索证明这种方法是一种拐杖。据我回忆,在一段时间内,我摆脱了它,只是把所有不能自动刷新的属性(大部分是嵌套的)放入计算属性中。
更多信息请访问:https://v2.vuejs.org/v2/guide/computed.html