Vue.nextTick.html 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. <!--
  8. 四个阶段:
  9. 初始:
  10. beforeCreate:data和methods不可用
  11. created:data和methods可用 DOM还未生成
  12. 挂载:
  13. beforeMount 模版已编译 但没有挂载到页面上
  14. mounted Dom已生成 可以操作Dom
  15. 更新:
  16. beforeUpdate 数据变化 Dom未更新
  17. updated 数据变化 Dom更新
  18. 销毁:
  19. beforeDestory 实例还能用
  20. destoryed 实例已销毁
  21. -->
  22. </head>
  23. <body>
  24. <div id="app">
  25. <h1>{{msg}}</h1>
  26. <button @click="changeMsg">修改</button>
  27. </div>
  28. <script src="../初阶/vue.js"></script>
  29. <script>
  30. var app = new Vue({
  31. el: "#app",
  32. data: {
  33. msg: "你好啊"
  34. },
  35. methods: {
  36. changeMsg() {
  37. this.msg = '哈哈哈';
  38. console.log(document.querySelector("h1").innerHTML, '111');
  39. this.$nextTick(() => {
  40. // 视图更新 数据未更新
  41. console.log(document.querySelector("h1").innerHTML, '222');
  42. })
  43. }
  44. },
  45. })
  46. </script>
  47. </body>
  48. </html>