Vue的生命周期资料

一、vue的生命周期是什么

vue每个组件都是独立的,每个组件都有一个属于它的生命周期,从一个组件创建、数据初始化、挂载、更新、销毁,这就是一个组件所谓的生命周期。在组件中具体的方法有:

beforeCreate

created

beforeMount

mounted

(

    beforeUpdate

    updated

)

beforeDestroy

destroyed

对应的中文就如其字面意思,英文不好的童鞋可以有道翻翻

二、vue生命周期的在项目中的执行顺序

data () {

return {

rendered: false,

}

}

1.beforeCeate(){

console.log(this.rendered);    // undefined  

}

2.created() {

console.log(this.$el);//undefined

console.log(this.rendered);  // false

}

3.beforeMount() {

console.log(this.$el);//undefined

}

4.mounted() {

console.log(this.$el);

}

5.beforeDestroy(){

console.log(this.$el);

console.log(this.rendered); 

}

6.destroyed() {

console.log(this.$el);

console.log(this.rendered);

}

三、vue中内置的方法 属性和vue生命周期的运行顺序(methods、computed、data、watch、props)

从第一二点可知道data的初始化是在created时已经完成数据观测(data observer),并且诸如methods、computed属性 props等已经初始化;那问题来了,

data props computed watch methods他们之间的生成顺序是什么呢?

根据翻看vue源码可知:

props => methods =>data => computed => watch; 懂了没

四、自己构造的方法与vue生命周期的运行顺序 如show这些

往往我们在开发项目时都经常用到 $refs 来直接访问子组件的方法,但是这样调用的时候可能会导致数据的延迟滞后的问题,则会出现bug。

解决方法则是推荐采取异步回调的方法,然后传参进去,严格遵守vue的生命周期就可以解决 推荐 es6 的promise。

示例代码:

handleAsync () {

return new Promise(resolve=>{

   const res="";

    resolve(res)

})

}

async handleShow() {

await this.handleAsync().then(res=>{

this.$refs.child.show(res);

})

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值