zoukankan      html  css  js  c++  java
  • $nextTick的使用场景

    可能只凭一些概念性的讲解还是无法对nextTick机制有很清晰的了解,还是上个示例来了解一下吧。

    <template>
     <div class="app">
            <div ref="contentDiv">{{content}}</div>
            <div>在nextTick执行前获取内容:{{content1}}</div>
            <div>在nextTick执行之后获取内容:{{content2}}</div>
            <div>在nextTick执行前获取内容:{{content3}}</div>
        </div>
    </template>
    
    <script>
    export default {
     name:'App',
     data: {
      content: 'Before NextTick',
      content1: '',
      content2: '',
      content3: ''
     },
     methods: {
      changeContent () {
       this.content = 'After NextTick' // 在此处更新content的数据
       this.content1 = this.$refs.contentDiv.innerHTML //获取DOM中的数据
       this.$nextTick(() => {
        // 在nextTick的回调中获取DOM中的数据
        this.content2 = this.$refs.contentDiv.innerHTML 
       })
       this.content3 = this.$refs.contentDiv.innerHTML
      }
     },
     mount () {
      this.changeContent()
     }
    }
    </script>
    

      

    当我们打开页面后我们可以发现结果为:

    After NextTick
    
    在nextTick执行前获取内容:Before NextTick
    
    在nextTick执行之后获取内容:After NextTick
    
    在nextTick执行前获取内容:Before NextTick
    

      

    所以我们可以知道,虽然content1content3获得内容的语句是写在content数据改变语句之后的,但他们属于同一个事件循环中,所以content1content3获取的还是 'Before NextTick' ,而content2获得内容的语句写在nextTick的回调中,在DOM更新之后再执行,所以获取的是更新后的 'After NextTick'。

  • 相关阅读:
    日报9.4
    日报9.3
    低级错误整理
    树状数组求逆序对 笔记与思路整理
    st表、树状数组与线段树 笔记与思路整理
    Luogu P1098 字符串的展开
    Luogu P1816 忠诚
    jmeter cookie管理器 使用方法---新手学习记录1
    kali nessus 安装插件失败解决方法
    https tomcat 证书搭建
  • 原文地址:https://www.cnblogs.com/jxnc/p/15018953.html
Copyright © 2011-2022 走看看