vue生命周期的理解

转载出处:浅白个人博客,转载请注明出处。<br>
地址:http://www.cnblogs.com/gagag/p/6246493.html

Vue生命周期

这是Vue文档里关于实例生命周期的解释图

那么下面我们来进行测试一下

<section id="app-8">
    {{data}}
</section>
var myVue=new Vue({
        el:"#app-8",
        data:{
            data:"aaaaa",
            info:"nono"
        },
        beforeCreate:function(){
            console.log("创建前========")
            console.log(this.data)
            console.log(this.$el)
        },
        created:function(){
            console.log("已创建========")
            console.log(this.info)
            console.log(this.$el)
        },
        beforeMount:function(){
            console.log("mount之前========")
            console.log(this.info)
            console.log(this.$el)
        },
        mounted:function(){
            console.log("mounted========")
            console.log(this.info)
            console.log(this.$el)
        },
        beforeUpdate:function(){
            console.log("更新前========");

        },
        updated:function(){
            console.log("更新完成========");
        },
        beforeDestroy:function(){
            console.log("销毁前========")
            console.log(this.info)
            console.log(this.$el)
        },
        destroyed:function(){
            console.log("已销毁========")
            console.log(this.info)
            console.log(this.$el)
        }
    })

 

代码如上,浏览器开始加载文件

 

 

 

 

由上图可知:

  1、beforeCreate 此时$el、data 的值都为undefined

  2、创建之后,此时可以拿到data的值,但是$el依旧为undefined

  3、mount之前,$el的值为“虚拟”的元素节点

  4、mount之后,mounted之前,“虚拟”的dom节点被真实的dom节点替换,并将其插入到dom树中,于是在触发mounted时,可以获取到$el为真实的dom元素()

  myVue.$el===document.getElementById(“app-8”)  // true

 

接着,在console中修改data,更新视图

 

 

   触发beforeUpdata 和updated

 

  接着,执行myVue.$destroy()

 

 

总结一下,对官方文档的那张图简化一下,就得到了这张图

 

 

**

总结:

> // 调用了beforeCreate(数据和标签都没有加载)
> // undefined
> // undefined
> // 调用了created (数据加载,标签没有加载)
> // 1
> //undefined 
> // 调用了beforeMount(数据加载,标签加载,标签没有被渲染)
> // 1 
> // <div></div> 
> // 调用了mounted (数据加载,标签加载,标签被渲染)
> // 1 
> //<div id="app"><p>1</p></div> 
> // 调用了beforeUpdate 
> // 2 
> // <div id="app"><p>2</p></div> 
> // 调用了updated 
> // 2 
> // <div id="app"><p>2</p></div>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值