【vue生命周期函数理解】

1. 单组件生命周期函数执行顺序

*注: vue中所有的生命钩子 this 都自动绑定至该vue实例,所以在使用vue生命周期函数时不能以箭头函数的形式应用( 箭头函数“无“this指向,其绑定了父级上下文,所以 this 不会指向预期的组件实例,使用时可能会出现undefined的错误)
错误示范:created: () => this.fetchTodos(),此时的this.fetchTodos()为undefined

// 初始化vue实例对象,vue的本质可看做一个类
let vm = new Vue({
	el: '#app' , // 挂载元素
	data: {},
})
// 创建之前 -- 不能获取 el && data
beforeCreate () {
	console.log('vue实例创建之前')
}
// 创建之后 -- 不能获取 el, 可获取data
created () {
	console.log('vue实例创建之后')
}
// 挂载之前 -- 可以获取 el 和 data, 此时的data为原始数据,即data中的数据还未被渲染
beforeMount () {
	console.log('vue实例挂载之前')
}
// 挂载之后 -- 可以获取 el 和 data,此时data中的数据已经全部加载
mounted () {
	console.log('vue实例挂载之后')
}
// 更新之前 -- 可以获取 el 和 data, 此时的data为原始数据,即新数据还未被渲染
beforeUpdate () {
	console.log('vue实例更新之前')
}
// 更新之后
updated () {
	console.log('vue实例更新之后')
}
// 销毁之前
beforeDestroy () {
	console.log('vue实例销毁之前')
}
// 销毁之后 -- 常见的销毁可以通过v-if指令去操作
destroyed() {
	console.log('vue实例销毁之后')
}

2. 父子组件嵌套时生命周期函数执行顺序

在这里插入图片描述

3. props、data、computed、watch、methods的执行顺序

3.1 加载时间
beforeCreate 和 created 之间
详见vue源码中的initState()
3.2 执行顺序
(1)props => methods => data => computed
(2)watch不会在创建阶段自动执行
(3)data 和 props 在created时可获取

4. 生命周期图示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值