vue.js的$nextTick使用

实例的 $nextTick 方法用于在下次 DOM 更新循环结束之后执行延迟回调。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4   <title>test</title>
 5   <script type="text/javascript" src="https://vuejs.org/js/vue.js"></script>
 6 </head>
 7 <body>
 8   <!-- <div id="app"> -->
 9     <button id="app" ref="tar" type="button" v-on:click="testClick">{{ content }}</button>
10     <!-- <button ref="tar" type="button" >{{ content }}</button> -->
11   <!-- </div> -->
12 </body>
13 <script type="text/javascript">
14   var app =  new Vue ({
15     el:'#app',
16     data(){
17       return {
18         content:'初始值'
19       }
20     },
21     methods:{
22       testClick(){
23         this.content = '改变了的值'
24         //这会直接打印的话, 由于dom元素还没有更新, 因此打印出来的还是未改变之前的值;   初始值
25         console.log(this.$refs.tar.innerText)   //添加ref属性,便于查找
26       },
27       testClick2(){
28         this.content='改变了的值2'
29         this.$nextTick(()=>{
30           //dom元素更新后执行, 因此此处能正确打印出更改之后的值;   改变了的值2
31           console.log(this.$refs.tar.innerText)
32         })
33       }
34     }
35   })
36 </script>
37 </html>

button调用testClick与testClick2,显示分别为【改变了的值】与【改变了的值2】,打印console分别为【初始值】与【改变了的值2】

猜你喜欢

转载自www.cnblogs.com/KulaAi/p/10274652.html