1.$nextTick.html 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <div id="app">
  10. <!--
  11. 处理数据未及时更新问题
  12. $nextTick:Vue.nextTick([callback,content])
  13. 在下次DOM更新循环后执行代码延迟回调,修改数据后渲然更新数据的一个方法
  14. 一般使用在create 修改数据后渲然更新数据的一个方法
  15. -->
  16. <div id="vase">{{vase}}</div>
  17. <button @click="send">改变</button>
  18. </div>
  19. <script src="./vue.js"></script>
  20. <script>
  21. var app = new Vue({
  22. el:"#app",
  23. data:{
  24. vase:'花瓶'
  25. },
  26. methods: {
  27. send() {
  28. this.vase = '玩鼠标好玩么';
  29. // this.$nextTick(()=>{
  30. // console.log("值1",document.getElementById("vase").innerHTML)
  31. // })
  32. setTimeout(()=>{
  33. console.log("值2",document.getElementById("vase").innerHTML)
  34. })
  35. console.log("值",document.getElementById("vase").innerHTML)
  36. }
  37. },
  38. // js执行顺序:同步 异步(微任务 宏任务)=>同步 nextTick promise setTimeOut
  39. })
  40. </script>
  41. </body>
  42. </html>