什么是Vue.nextTick()??

定义:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

所以就衍生出了这个获取更新后的DOM的Vue方法。所以放在Vue.nextTick()回调函数中的执行的应该是会对DOM进行操作的 js代码;

理解:nextTick(),是将回调函数延迟在下一次dom更新数据后调用,简单的理解是:当数据更新了,在dom中渲染后,自动执行该函数,

复制代码
 1 <template>
 2   <div class="hello">
 3     <div>
 4       <button id="firstBtn" @click="testClick()" ref="aa">{{testMsg}}</button>
 5     </div>
 6   </div>
 7 </template>
 8  
 9 <script>
10 export default {
11   name: 'HelloWorld',
12   data () {
13     return {
14       testMsg:"原始值",
15     }
16   },
17   methods:{
18     testClick:function(){
19       let that=this;
20       that.testMsg="修改后的值";
21       console.log(that.$refs.aa.innerText);   //that.$refs.aa获取指定DOM,输出:原始值
22     }
23   }
24 }
25 </script>
26  
复制代码

使用this.$nextTick()

复制代码
1   methods:{
2     testClick:function(){
3       let that=this;
4       that.testMsg="修改后的值";
5       that.$nextTick(function(){
6         console.log(that.$refs.aa.innerText);  //输出:修改后的值
7       });
8     }
9   }
复制代码

注意:Vue 实现响应式并不是数据发生变化之后 DOM 立即变化,而是按一定的策略进行 DOM 的更新。$nextTick 是在下次 DOM 更新循环结束之后执行延迟回调,在修改数据之后使用 $nextTick,则可以在回调中获取更新后的 DOM.

本文作者:丹江路39号

本文链接:https://www.cnblogs.com/maxiaopi/p/16343955.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   丹江路39号  阅读(26)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 不要说话 REOL
  2. 2 这世界那么多人 REOL
  3. 3 盛夏的果实 REOL
这世界那么多人 - REOL
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

Not available