• vue中的生命周期


    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <script src="./lib/vue-2.4.0.js"></script>
    </head>
    <body>
      <div id="app">
          <p>{{info}}</p>
          <button @click="info='hello1'">更新info</button>
          <button @click="destroy">销毁实例</button>
      </div>
      <script>
          var myVm = new Vue({
              el: "#app",
              data: {
                  info: "hello"
              },
              // 在实例初始化之后,数据观测 (data observer) 和 event/watcher 配置之前被调用。
              beforeCreate: function () {
                  console.log("===============beforeCreate============================================")
                  // $el表示Vue 实例使用的根 DOM 元素。
                  console.log('$el', this.$el);
                  // $data Vue 实例观察的数据对象
                  console.log('$data', this.$data);
                  console.log("info:", this.info)
              },
              // 在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,dom还未生成,$el 属性目前不可见。
              created: function () {
                  console.log("===============created=======================================")
                  console.log('$el', this.$el);
                  console.log('$data', this.$data);
                  console.log("info:", this.info)
              },
              // 模板编译挂载之前调用,首先会判断对象是否有el选项。如果有的话就继续向下编译,如果没有el选项,则停止编译,也就意味着停止了生命周期,直到在该vue实例上调用vm.$mount(el)。接着判断是否有template属性,有的话就以template属性中的值作为模板,如果没有的话,就以el属性指向的作为模板。这里会生成vm.$el,但指令尚未被解析
              beforeMount: function () {
                  console.log("===============beforeMount=========================================")
                  console.log('$el', this.$el);
                  console.log('$data', this.$data);
                  console.log("info:", this.info)
              },
              // 模板编译挂载之后调用,vm.$el替换掉el指向的dom
              mounted: function () {
                  console.log("===============mounted===========================================")
                  console.log('$el', this.$el);
                  console.log('$data', this.$data);
                  console.log("info:", this.info)
              },
              // 数据变更导致虚拟DOM重新渲染之前调用
              beforeUpdate: function () {
                  console.log("===============beforeUpdate============================================");
    
              },
              // 数据变更导致虚拟DOM重新渲染之后调用
              updated: function () {
                  console.log("===============updated======================================================");
              },
              // 实例销毁之前调用,在这一步,实例完全可用
              beforeDestroy: function () {
                  console.log("===============beforeDestroy===============================================")
                  console.log('$el', this.$el);
                  console.log('$data', this.$data);
                  console.log("info:", this.info)
              },
              // vue实例指向的所有东西解除绑定,包括watcher、事件、所以的子组件,后续就不再受vue实例控制了
              destroyed: function () {
                  console.log("===============destroyed================================================")
                  console.log('$el', this.$el);
                  console.log('$data', this.$data);
                  console.log("info:", this.info)
              },
              methods: {
                  destroy() {
                      // 表示销毁组件
                      this.$destroy()
                  },
                  udpateinfo() {
                      this.info = 'hello2'
                  }
              }
          })
      </script>
    </body>
    </html>
    

    生命周期图

  • 相关阅读:
    将方法作为方法的参数
    远程桌面无响应解决方案(转)
    QQ通信机制(转)
    电脑管家禁止程序修改文档后如何恢复权限
    SQL Sever——远程过程调用失败(0x800706be)
    JavaScript学习笔记之JavaScript调用C#编写的COM组件
    kendoUI 免费部分开发部分经验。
    mongoDB连接信息及生成对应的collection生成代码
    写个匹配某段html dom代码某属性的正则匹配方法
    微信获取用户支付共享地址
  • 原文地址:https://www.cnblogs.com/mushitianya/p/10518491.html
Copyright © 2020-2023  润新知