..._vue点击添加按钮,弹出成功,但是数据库和前端页面没有改变">
当前位置:   article > 正文

vue中遇到数据更新但是页面没有更新的情况_vue点击添加按钮,弹出成功,但是数据库和前端页面没有改变

vue点击添加按钮,弹出成功,但是数据库和前端页面没有改变

今天在项目中遇到了一个需求,点击改变数据,之后在页面上立即看到更改后的数据。

在这里插入图片描述
首先,如上图的黄色按钮是通过v-for 循环产生的,data()里只有数据cards:[ … ],cards的值是通过调用后台接口拿到的。

data(){
  return {
    cards:[]
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
<div v-for="card in cards"  :key="card.id">
  <img src="xxx" />
  <div v-if="card.isShow"  @click="cacelHandler(card)">
    <img src="xxxx"  />
  </div>
</div>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这个头像下方的黄色按钮,是根据card.isShow的truthy 决定显示或不显示。
当我点击按钮的时候,把card.isShow 的值变为 false。
可是页面上的黄色按钮还在,并没有如我期望的那样消失。
通过查询资料得知,使用this.$forceUpdate()可以重新渲染组件,这样就可以得到想要的效果。

cacelHandler(card){
  card.isShow = false;
  this.$forceUpdate();
}
  • 1
  • 2
  • 3
  • 4

vue官方对$forceUpdate的解释是:
$forceUpdate可以迫使 Vue 实例重新渲染。它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/228715
推荐阅读
相关标签
  

闽ICP备14008679号