首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >你能强制Vue.js重新加载/重新渲染吗?

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

Stack Overflow用户
提问于 2015-08-20 05:43:52
回答 21查看 453.6K关注 0票数 317

只是一个简短的问题。

你能强制Vue.jsreload/recalculate所有的东西吗?如果是这样的话,是怎么做的?

EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2016-11-14 18:45:32

试试这个魔术咒语:

代码语言:javascript
复制
vm.$forceUpdate();

无需创建任何挂起的var :)

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

更多信息请点击此处:https://vuejs.org/v2/guide/computed.html

票数 310
EN

Stack Overflow用户

发布于 2018-02-13 04:44:23

这看起来像是来自this issue上的matthiasg的一个相当干净的解决方案

如果要完全重新生成组件,还可以使用:key="someVariableUnderYourControl"并更改密钥

在我的用例中,我将一个Vuex getter作为道具输入到一个组件中。不知何故,Vuex会获取数据,但反应性不会可靠地启动以重新呈现组件。在我的示例中,将组件key设置为prop上的某个属性可确保在getter(和属性)最终解析时进行刷新。

票数 118
EN

Stack Overflow用户

发布于 2019-01-25 22:42:28

请阅读此http://michaelnthiessen.com/force-re-render/

可怕的方式:重新加载整个页面

可怕的方式:使用v-if黑客

更好的方法:使用Vue内置的forceUpdate方法进行

最好的方法:在component 上更改密钥

代码语言:javascript
复制
<template>
   <component-to-re-render :key="componentKey" />
</template>

<script>
 export default {
  data() {
    return {
      componentKey: 0,
    };
  },
  methods: {
    forceRerender() {
      this.componentKey += 1;  
    }
  }
 }
</script>

在某些情况下,我也使用watch:。

票数 76
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32106155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档