vue 常见的数据与视图更新问题,this.$nextTick、this.$set

1. 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)。

posted @ 2021-12-29 20:34  不如饲猪  阅读(474)  评论(0)    收藏  举报