- this.$nextTick
js是单线程的,但在vue中属性通过js改变后到视图改变是需要时间的,比如使用v-if时使元素从 v-if=false 到 true 之后马上操作元素内的数据或者视图可能是失败的,此时需要在改变 v-if 内的状态之后在 this.$nextTick 内执行操作元素内的数据或者视图。
// 移除组件
this.update = false;
// 在组件移除后,重新渲染组件
// this.$nextTick可实现在DOM 状态更新后,执行传入的方法。
this.$nextTick(() => {
this.update = true;
});
2.this.$set
如果你在控制台看到对象或者数组的数据更新了,但是你的视图还没有更新,this.$set可以手动使视图数据更新:
this.$set(Object / Arrey, index / ‘key’, newVal)。