vue给data赋值是异步还是同步的?

RT 我感觉是同步的但是实际应用中总感觉是异步的

阅读 11.7k
2 个回答

vue 自身维护 一个 更新队列
当你设置 this.a = 'new value',DOM 并不会马上更新,也就是下一个事件循环开始时执行更新时才会进行必要的DOM更新。
所以应该算 延时异步的,只不过时间太短,感应不出来
所以 for 循环 10000次 this.a = i vue只会更新一次,而不会更新10000次
也是为了性能

Vue 的 state 更新是同步的,但渲染是异步的。
而 React 的 state 更新就是异步的。

<!DOCTYPE html>
<html>
  <head>
    <title>My first Vue app</title>
    <script src="https://unpkg.com/vue"></script>
  </head>
  <body>
    <div id="app" @click="addCount">
      {{ count }}
    </div>

    <script>
      var app = new Vue({
        el: "#app",
        data: {
          message: "Hello Vue!",
          count: 0
        },
        methods: {
          addCount() {
            this.count += 1;
            console.log(this.count);
            this.count += 2;
          }
        }
      });
    </script>
  </body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题