生命周期
生命周期图示
hook | desc |
---|---|
setup | cpa语法 |
beforeCreate | 在组件实例初始化完成之后立即调用,此阶段props解析完毕,但data computed还没进行处理 |
created | 响应式数据,计算属性,方法已经部署完毕 |
beforeMount | 组件、元素挂载之前,即将挂载元素 |
mounted | 组件、元素挂载完毕,在这里可以操作el了,但不包括Suspense中内部组件 |
beforeUpdate | 响应式数据发生改变,在组件更新之前调用 |
updated | 组件因响应式数据而更新之后调用 |
beforeUnmount | 组件被卸载之前调用 |
unmounted | 组件卸载之后调用,通常应用在事件解绑 |
errorCaptured | 捕获到后代组件错误时触发 |
keepAlive独有钩子
hook | desc |
---|---|
activated | 组件插入DOM时调用 |
deactivated | 组件在DOM移除之后调用 |
开发时的钩子
仅在开发模式下有效的钩子
hook | desc |
---|---|
renderTracked | 响应式依赖被组件渲染作用跟踪后调用 |
renderTriggered | 响应式依赖被组件重新触发渲染之后调用 |
请求数据一般在哪个钩子中执行
在created钩子中,请求数据,因为这个时候data和methods已经部署完毕了,可以直接发送请求将返回来的数据存放到data中
当然也可以在beforeMount和mounted中调用,因为这三个钩子data已经部署好了,但还是推荐在created中调用会比较好,因为能更快获取到服务器端的数据,减少页面加载事件,用户体验更好
created和mounted的区别是什么
在上面已经提到created是部署完data,methods和计算属性方法的了,接着在渲染组件到HTML中。
区别在于created是组件渲染前调用,mounted是组件渲染之后调用。
如果业务需求需要操作到dom,需要通过ref绑定之后在mounted钩子中获取到对应的元素