vue之生命周期

所有的钩子函数不能使用箭头函数,如:

created: () => console.log(this.a)

因为箭头函数是和父级上下文绑定在一起的,this 不会是如你所预期的 Vue 实例,会导致 Uncaught TypeError: Cannot read property of undefined

 

beforeCreate

实例创建前的状态,el与data都为undefined

看到一个很有趣的问题,怎么在这个钩子里面拿数据:

new Vue({
    el:"#app",
    data:{
        msg:'hello world'
    },
    beforeCreate(){
        this.$nextTick(function () {
        console.log('$nextTick  '+this.msg);
        })//2
        setTimeout(()=>{console.log('setTimeout  '+this.msg)},1000);//3
        console.log('$options  '+this.$options.data()["msg"]) //1
    }

})

created

实例创建完毕,el为undefined,data里面有数据

beforeMount

挂在前状态 elel与data都有相对应的属性

Mounted

挂载后状态 el与data都有相对应的属性

beforeUpdate

更新前状态 data里面属性值改变;

重新渲染之前触发,然后vue的虚拟dom机制会重新构建虚拟dom与上一次的虚拟dom树利用diff算法进行对比之后重新渲染

发起数据请求不能在beforeUpdate中操作。会导致无限循环

只有view上面的数据变化才会触发beforeUpdate和updated,仅属于data中的数据改变是并不能触发

updated

更新完成状态,data里面属性值改变,dom也重新render完成

发起数据请求不能在updated中操作。会导致无限循环

只有view上面的数据变化才会触发beforeUpdate和updated,仅属于data中的数据改变是并不能触发

beforeDestroy

销毁前状态,一般在这里善后:清除计时器、清除非指令绑定的事件

destroyed

销毁后状态,卸载watcher,事件监听,子组件

 

 


 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值