美文网首页
Vue高级特性「五」--$nextTick

Vue高级特性「五」--$nextTick

作者: loushumei | 来源:发表于2020-10-27 20:28 被阅读0次
$nextTick

data改变之后,DOM不会立刻渲染,获取不到最新的DOM节点;
$nextTick会在DOM渲染之后被触发,以获取最新DOM节点

<template>
  <div>
    <ul ref="ul1">
      <li v-for="(item,index) in list" :key="index">{{item}}</li>
    </ul>
    <button @click="add">添加项</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: ["a", "b", "c"],
    };
  },
  methods: {
    add() {
      this.list.push(Date.now());
      this.list.push(Date.now());
      this.list.push(Date.now());

      const ulElem = this.$refs.ul1; //获取ul的DOM节点
      console.log(ulElem.childNodes.length); //此时data改变之后,DOM不会立刻渲染,获取不到最新的DOM节点

      // $nextTick会在DOM渲染之后被触发,以获取最新DOM节点
      this.$nextTick(() => {
        const ulElem = this.$refs.ul1; //获取ul的DOM节点
        console.log(ulElem.childNodes.length); //$nextTick会在DOM渲染之后被触发,此时已经是最新的DOM节点
      });

      // 1. 异步渲染,$nextTick 待DOM渲染完再回调
      // 2. 页面渲染是,会将data的修改做整合,多次data修改只会渲染一次
    },
  },
};
</script>

相关文章

  • Vue高级特性「五」--$nextTick

    $nextTick data改变之后,DOM不会立刻渲染,获取不到最新的DOM节点;$nextTick会在DOM渲...

  • vue高级特性

    Vue高级特性 未经同意 禁止转载 自定义v-model $nextTick 1. vue是异步渲染 2. dat...

  • Vue的一些高级特性

    Vue的一些高级特性 兄弟组件之间的传值 自定义v-model $nextTick slot 动态,异步组件 ke...

  • vue使用this.$nextTick()函数

    Vue.nextTick Vue 中的 nextTick 涉及到 Vue 中 DOM 的异步更新 Vue 实现响应...

  • vue中的this.$nextTick和Vue.nextTick

    首先 this.$nextTick 其实就是Vue.nextTick, 因为this指向的就是Vue 总结: 页...

  • vue.nextTick()和this.$nextTick()获

    一.对vue.nextTick()和this.$nextTick()细致介绍 虽然vue是不建议操作dom的,...

  • $nextTick 的作用

    有同学在看 Vue 官方文档时,对 API 文档中的 Vue.nextTick 和 vm.$nextTick 的作...

  • vue 高级特性

    一 自定义v-model属性 vue在表单等domm模型中默认绑定了v-model的特性,而父组件中封装了有inp...

  • Vue高级特性

    自定义v-model v-model实际上是语法糖: 案例: $nextTick异步渲染 $nextTick会在D...

  • vue高级特性

    v-model $nextTick 汇总data的修改,一次性做视图更新减少DOM操作次数,提高性能 slot 父...

网友评论

      本文标题:Vue高级特性「五」--$nextTick

      本文链接:https://www.haomeiwen.com/subject/dxffvktx.html