vue中出现组件不渲染更新的问题,方法总结

本文详细介绍了Vue中组件不更新的常见原因及解决方案,包括使用this.$forceUpdate()强制更新,利用this.set()修改对象和数组,通过v-if结合key实现组件的重新渲染,为解决Vue组件更新问题提供实用指南。

vue中出现组件不渲染更新的问题,方法总结

1.用this.$forceUpdate()方法

例如:

this.data.status= false; // 数据改变
this.$forceUpdate(); // 调用

2.如果是object或者是array类型的话改变值最好用 this.set(),this.set(),this.set(),this.delete(),array.splice()等方法进行修改

this.$set(this.data,'status',false)

3.用v-if来控制组件让改变值后组件件消失后重新来渲染一次。

视图

<Input v-if="show" key="1" id="keyword" name="keyword" 
		prefix="ios-search" placeholder="搜索"/>

js:

$this.show= false;
this.data.status= false;
$this.show= true;

4.用v-if如果值改变成功了没有重新渲染的话很可能是组件太相似让vue没有识别出来,必须加个key来区分这些组件。

<Input v-if="tabDefault==='company'" key="1" id="keyword"
	 name="keyword" prefix="ios-search" placeholder="搜索"/>
<Input v-if="tabDefault==='role'" key="2"  id="keyword2" 
	name="keyword2" prefix="ios-search" placeholder="搜索"/>
<Input v-if="tabDefault==='interior'" key="3"  id="keyword3"
	 name="keyword3" prefix="ios-search" placeholder="搜索"/>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值