Vue生命周期函数

Vue生命周期函数

每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。注:生命周期函数是每个Vue实例的函数

在这里插入图片描述

Vue生命周期函数分为三个阶段

  • 创建阶段

    • beforeCreate:这个阶段只是初始化事件和生命周期函数,Vue实例上挂载的元素el和data对象都是undefined,还没有进行初始化。可以在这里加一个loading事件,在加载实例时触发。

    • created:这个阶段进行了各种初始化,Vue实例中的data和methods都已经初始化好了,可以访问,但是此时并没有挂载到DOM上,元素el也还没有。初始化完成时的事件写在这里,如在这结束loading事件,异步请求也适宜在这里调用

      • 这里会进行el的判断,如果有el,就继续向下编译,如果没有,则停止编译,也就意味着停止生命周期,知道子啊该Vue实例上调用。

      • 接下来判断是否有template,如果参数中有template参数选项,则将其作为模板编译成render函数。如果没有则将外部的HTML作为模板编译,由此可见template中的模板的优先级是要高于外部HTML的。

        <!DOCTYPE html>
        <html lang="zh-CN">
        
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
        </head>
        
        <body>
          <div id="app">
            <h1>{{message+'这是outHTML中的html'}}</h1>
          </div>
          <script src="../vue包/vue.js"></script>
          <script>
            var vm = new Vue({
              el: "#app",
              data: {
                message: 'vue生命周期函数'
              },
              template: "<h1>{{message+'这是template中的html'}}</h1>"
            })
          </script>
        </body>
        
        </html>
        

        在这里插入图片描述

        当将Vue实例中template注释掉时页面显示:

    在这里插入图片描述

    **render函数选项   >   template参数选项    >  外部HTML**
    
    • beforeMount:模板在内存中已经编译好了,但是并没有挂载到页面中,Vue实例中的el和data都初始化好了,在挂载之前都是虚拟的DOM节点。

    • mounted:模板被挂载到了页面上,DOM也被渲染上来了,Vue实例中的el和data等也被挂载到了真实的DOM上,可以进行DOM操作了。

  • 运行阶段

    • beforeUpdate:当数据发生改变后,数据被渲染到DOM上之前触发此函数,此时data中的数据已经被改变了,但是DOM上的数据还是原来的数据。
    • updated:将发生改变的数据渲染到页面上去。这个阶段可以写一些对数据进行处理的函数。
  • 销毁阶段

    • beforeDestroy:实例销毁前调用,实例还可以用,this能获取到实例,常用于销毁定时器,解绑事件。

    • beforeDestroy:实例销毁前调用,实例还可以用,this能获取到实例,常用于销毁定时器,解绑事件。

    • destroyed:实例销毁后调用,调用后所有事件监听器会被移除,所有的子实例都会被销毁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值