vue学习笔记---2.vue.js生命周期

根据官方api生命周期的图示如下:
总共分为8个生命周期

  • beforeCreate
  • created
  • beforeMount
  • mounted
  • beforeUpdate
  • update
  • beforeDestroy
  • destroyed

在这里插入图片描述

在这里插入图片描述
在实例中可具体解释

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue的生命周期</title>
</head>
<body>
    <div id="app">
        <p id="myp" v-text="msg"></p>
        <input type="button" value="click" @click="change">
    </div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    const vm = new Vue({
        //这是vue生命周期的第一个函数,在执行这个方法的时候,vue实例还没有创建,所以此时拿不到data或者methods里面的信息
        beforeCreate:function(){
            console.log("-------beforeCreate")
			//此时实例还没创建,date拿不到以下方法会报错
            /*console.log(this.msg);
            this.show();*/
        },
        //这是vue生命周期的第二个函数,该方法是vue实例已经创建完毕,所以此时可以获取data或者methods中的信息
        created:function(){
            console.log("------created")
            console.log(this.msg);
            this.show();
        },
        //这是遇到的第3个生命周期函数,表示模板已经在内存中编辑完成了,但是尚未把模板渲染到页面中
        beforeMount:function(){
            console.log("-------beforeMount")
            console.log(document.getElementById("myp").innerText);
        },
        //这是生命周期的第四个函数,表示模板已经渲染到页面中了
        //当mounted方法执行完毕之后,则表示vue实例彻底创建好了(data、methods、页面模板已经到了页面),此时vue实例就在内存中一动不动了
        mounted:function(){
            console.log("-------mounted")
            console.log(document.getElementById("myp").innerText);
        },
        //当data中的数据发生变化之后,在虚拟dom更新之前调用,此时不可以从页面获取更新之后的信息
        beforeUpdate:function(){
            console.log("-------beforeUpdate")
            console.log(document.getElementById("myp").innerText);
        },
        //当data中的数据发生变化之后,虚拟dom更新之后调用,此时可以从页面获取更新之后的信息了
        updated:function(){
            console.log("-------updated")
            console.log(document.getElementById("myp").innerText);
        },
        //vue实例销毁之前做的事情
        beforeDestroy:function(){

        },
        //vue实例销毁
        destroyed:function(){

        },
        data:{
            msg:"这是一段信息"
        },
        methods: {
            show: function () {
                console.log("show方法调用了")
            },
            change:function(){
                this.msg = "消息改变了"
            }
        },
        
    })
	//当Vue实例没有el属性时,则该实例尚没有挂载到某个dom中,假如需要延迟挂载,可以在之后手动调用vm.$mount()方法来挂载
    vm.$mount("#app")
</script>


</html>

通过console方法打印可看到输出结果:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值