vue生命周期钩子函数


前言

    vue所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算。这意味着 你不能使用箭头函数来定义一个生命周期方法 (例如 created: () => this.fetchTodos())。这是因为箭头函数绑定了父上下文,因此 this 与你期待的 Vue 实例不同, this.fetchTodos 的行为未定义

一、vue的生命周期是什么

    vue每个组件都是独立的,每个组件都有一个属于它的生命周期,从一个组件创建、数据初始化、挂载、更新、销毁,这就是一个组件所谓的生命周期。在组件中具体的方法有:beforeCreate created beforeMount mounted beforeUpdate updated beforeDestroy destroyed
官网生命周期图示

二、vue生命周期钩子执行顺序

<div id="app">
        <h1>{{message}}</h1>
</div>
<script>
  const app = new Vue({
            el: "#app",
            data: {
                message: "hello world"
            },
</script>

beforeCeate

      beforeCreate() {
                console.log("beforeCreate");
                console.log(this.message); //undefined
                console.log(this.$el);
                console.log("-------------分割线-------------");

            },

在这里插入图片描述
Vue的实例对象已经创建完毕 只是传入的参数(data数据 methods方法 el 都没有设置到Vue的实例上面去)所以这里取不到data里面的数据

created

 created() {
                console.log("created");
                console.log(this.message); 
                console.log(this.$el);
                console.log("-------------分割线-------------");
            },

在这里插入图片描述
Vue实例对象创建完毕 并且所有的属性 都已经设置到实例化对象上了(通常情况下可以做数据的初始化)

beforeMount

  beforeMount() {
                console.log("beforeMount");
                console.log(this.message);
                console.log(this.$el);
                console.log("-------------分割线-------------");
            },

在这里插入图片描述
页面所有组件创建完毕,但是还没有进行对应的VUE操作(data里面数据的解析 methods里面的方法 )仅限于拿到页面结构(数据还没有解析)

mounted

 mounted() {
                console.log("mounted");
                console.log(this.message); //undefined
                console.log(this.$el);
                console.log("-------------分割线-------------");
            }

在这里插入图片描述
页面所有组件创建完毕 并且会执行对应的vue操作 把页面(数据解析完毕)的结构挂到vue的实例上面

beforeUpdate

  beforeUpdate() {
          console.log("组件更新之前");
        },

组件更新之前执行的钩子函数

updated

 updated() {
          console.log("组件更新完成");
        },

组件更新完成执行的钩子函数

beforeDestroy

  beforeDestroy() {
          console.log("组件销毁之前");
        },

组件销毁之前执行的钩子函数

destroyed

 destroyed() {
      console.log("组件销毁完成");
    },

组件销毁完成执行的钩子函数


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值