21.生命周期.html 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. <!--
  10. 三个阶段:8个
  11. 初始:
  12. beforeCreate 创建前 方法和数据 都无法被调用
  13. created 创建后 方法和数据 都可以被调用
  14. 运行:
  15. beforeMount 挂在前 页面数据并没有更新到视图上 对当前DOM操作无效
  16. mounted 挂在后 页面更新到视图上 对DOM操作生效
  17. beforeUpdate 更新前 视图变化 数据未更新
  18. updated 更新后 视图变化 数据更新
  19. 销毁:
  20. beforeDestory 销毁前 对DOM操作无效
  21. destoryed 销毁后 彻底销毁
  22. -->
  23. <div id="app">
  24. <div id="hi">{{msg}}</div>
  25. <button @click="changeMain">改变</button>
  26. </div>
  27. <script src="./vue.js"> </script>
  28. <script>
  29. var vm = new Vue({
  30. el:"#app",
  31. data:{
  32. msg:"你好"
  33. },
  34. beforeCreate() {
  35. console.log(this.msg,'1')
  36. },
  37. created() {
  38. console.log(this.msg,'2',this.getMain())
  39. },
  40. beforeMount() {
  41. console.log(this.msg,'3',this.$el)
  42. },
  43. mounted() {
  44. console.log(this.msg,'4',this.$el)
  45. },
  46. beforeUpdate() {
  47. console.log(this.msg,'5',this.$el,document.getElementById("hi").innerHTML)
  48. },
  49. updated() {
  50. console.log(this.msg,'6',this.$el,document.getElementById("hi").innerHTML)
  51. },
  52. methods:{
  53. getMain() {
  54. console.log("今天")
  55. },
  56. changeMain() {
  57. this.msg = '新的'
  58. }
  59. }
  60. })
  61. </script>
  62. </body>
  63. </html>