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

1.用this.$forceUpdate()方法

例如:

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

2.如果是object或者是array类型的话改变值最好用 this. s e t ( ) , t h i s . 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="搜索"/>
Logo

前往低代码交流专区

更多推荐