Vue.js删除子组件数据显示异常,重新销毁创建子组件

参考文档:https://blog.csdn.net/iceking66/article/details/78201885(回调)

https://segmentfault.com/q/1010000004000163(v-if)

一、问题描述:父组件通过v-for渲染子组件,删除子组件数据出现异常。

<section v-if="isrefresh" v-for="(sign,index) in signs">  
   <sign-card></sign-card>
</section>

二、问题原因:出现异常的数据不是响应式依赖,是从vuex读取的。通过测试发现,父组件删除数据,没有重新创建子组件,怀疑是子组件异常的数据是读取的缓存副本。

三、问题解决:根据v-if改变dom结构的特性,手动使子组件重新创建。

1.设置一个数据变量isrefresh=true

2.初始v-if=isrefresh

3.删除时,配合$nextTick()DOM渲染回调函数,使子组件重新创建

{
  this.isrefresh = this.isrefresh?false:true;
       this.$nextTick(function(){//DOM变化回调函数:v-for渲染已完成
          this.isrefresh = this.isrefresh?false:true;
       })
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值