vue组件生命周期介绍

1.组件生命周期列表

钩子函数触发时期特点
beforeCreate
组件实例化之前

data和methods里面的属性和方法还是读取不到的

created
组件已经实例化
data和methods 都已经初始化完成,但是这时模板还没有编译
beforeMount
组件挂载之前
模板已经编译,但是页面还没有渲染,页面的内容还是模板字符串
mounted
组件已挂载
页面渲染完成,可以看到最终的页面效果
beforeUpdate
页面更新之前
此时data里的属性更新了,但是页面还没有更新
updated
页面更新后
此时data和页面的内容都是最新的
beforeDestroy
页面销毁之前
常用于清除定时器
destroyed
页面销毁之后
此时页面已关闭

2.组件生命周期代码实例

<template>
  <div class="about">
 <h1>组件-生命周期</h1>
    <div id="msg">{{msg}}</div>
    <button @click="modify">修改msg</button>
  </div>
</template>
<script>
export default {
  name:'About',
  data(){
    return{
      msg:'Yes'
    }
  },
  methods:{
    modify(){
       this.timer =setTimeout(()=>{
        this.msg = Date.now();
        console.log(this.msg);
      },3000);
    },
    show(){
      console.log('执行了show方法')
    }
  },
  beforeCreate() {
    //组件实例化之前,
    //data和methods里面的属性和方法还是读取不到的
    // console.log(this.show()); //无法执行,控制台直接报错
  },
  created() {
    // data和methods 都已经初始化完成
    // 此时能获取data和methods里面的属性和方法
    //但是这时模板还没有编译
    console.log(this.msg)
    this.show();
  },
  beforeMount() {
    //模板已经编译,但是页面还没有渲染
    //页面的内容还是模板字符串
    console.log('beforeMount',document.getElementById('msg')); //打印结果是null
  },
  mounted() {
    //页面渲染完成,可以看到最终的效果
    console.log('mounted',document.getElementById('msg')); //打印结果是Yes
  },
  beforeUpdate() {
    //页面更新之前
    //此时data里的属性更新了,但是页面还没有更新
     console.log('beforeUpdate',this.msg,
         document.getElementById('msg').innerText
     );
  },
  updated() {
    //页面更新后
    //此时data和页面的内容都是最新的
    console.log('updated',this.msg,
        document.getElementById('msg').innerText
    );
  },
  beforeDestroy() {
    //页面销毁之前
    //常用于清除定时器
    console.log('beforeDestroy');
    clearTimeout(this.timer);
  },
  destroyed() {
    //页面销毁之后
    console.log('destroyed')
  }


}
</script>
<style lang="css" scoped>

</style>

3.生命周期图例

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThinkPet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值