Vue 生命周期概述
Vue 生命周期指的是 Vue 实例从创建到销毁的过程,在这一过程中,Vue 会根据不同的阶段触发相应的生命周期钩子函数。生命周期钩子是一些特定的时机,用于在 Vue 实例的不同阶段执行自定义逻辑。
Vue 的生命周期大致可以分为以下几个阶段:
- 创建阶段:包括
beforeCreate、created - 挂载阶段:包括
beforeMount、mounted - 更新阶段:包括
beforeUpdate、updated - 销毁阶段:包括
beforeDestroy、destroyed
生命周期钩子的顺序如下图所示:
beforeCreate → created → beforeMount → mounted → beforeUpdate → updated → beforeDestroy → destroyed
created 和 mounted 生命周期钩子的区别
created 和 mounted 都是 Vue 实例创建过程中重要的生命周期钩子,但它们的触发时机不同,因此用来处理不同的任务。
1. created 钩子
- 触发时机:在 Vue 实例被创建之后,数据观测和事件配置之后,模板编译之前触发。
- 主要用途:可以在这个阶段进行一些数据的初始化、事件监听、请求 API 获取数据等操作,因为此时模板还没有渲染到页面上,无法访问真实 DOM。
注意:created 阶段 Vue 实例的 DOM 尚未挂载完成,因此无法直接访问 DOM 元素。
2. mounted 钩子
- 触发时机:在 Vue 实例挂载到 DOM 上之后触发,意味着模板已被编译并插入到页面中,真实 DOM 可供访问。
- 主要用途:可以在这个阶段执行依赖于 DOM 元素的操作,如请求接口并显示数据、初始化插件等。
注意:mounted 在初次渲染时会被调用,而当数据变更时,它不会再次触发。
请求数据时在 created 和 mounted 中的区别
-
created中请求数据:- 请求数据时,数据在组件实例创建后就能立即访问,但此时 DOM 还没有挂载,页面不会立刻呈现请求的数据。
- 适用于初始化数据,或者不依赖于 DOM 渲染完成的请求。
-
mounted中请求数据:- 请求数据时,页面已经渲染到 DOM 上,可以依赖于真实 DOM 操作(例如获取 DOM 的高度、宽度等)。
- 适用于需要 DOM 渲染完成后才能进行的请求或操作。
代码示例
示例 1:在 created 中请求数据
<template>
<div>
<h1>{
{
message }}</h1>
<p>{
{
apiData }

最低0.47元/天 解锁文章
8221

被折叠的 条评论
为什么被折叠?



