深入了解vue生命周期函数之created()

前言

什么是生命周期函数

在 Vue.js 中,组件有一系列的生命周期钩子函数,它们允许你在组件不同的阶段执行自定义的逻辑代码。这些生命周期钩子函数可以让你在组件被创建、挂载、更新和销毁等不同阶段执行相应的操作。

在Vue.js中created函数是什么

在 Vue.js 中,created 是组件生命周期中的一个钩子函数,它表示一个 Vue 实例被创建之后调用。在这个阶段,Vue 实例已经完成了数据观测 (data observer) 和事件/生命周期事件监听器的初始化。一般可以在created函数中调用ajax获取页面初始化所需的数据。

以下是 Vue.js 中常见的生命周期钩子函数:

  1. beforeCreate:在实例被创建之初,数据观测 (data observer) 和事件/生命周期事件监听器都未初始化之前调用。
  2. created:在实例被创建后立即调用。在这一阶段,实例已完成以下配置:数据观测 (data observer)、属性和方法的运算、watch/event 事件回调。但是挂载阶段还未开始,$el 属性尚不可用。
  3. beforeMount:在挂载开始之前被调用:相关的 render 函数首次被调用。
  4. mounted:在挂载完成后调用,即 DOM 元素已经被挂载到页面上之后调用。这时,组件已经完成了挂载,可以访问到 DOM 元素。
  5. beforeUpdate:数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。可以在该钩子中对更新之前的 DOM 做一些操作。
  6. updated:在数据更改导致虚拟 DOM 重新渲染和打补丁之后调用。组件 DOM 已经更新,可以执行依赖于 DOM 的操作。
  7. beforeDestroy:在实例销毁之前调用。在这一阶段,实例仍然完全可用。
  8. destroyed:在实例销毁后调用。这时,组件及其所有的监听器和子组件都已被销毁。

官方的生命周期函数图解

接下来让我们来详细介绍一下created函数。

如何实例一个created生命周期函数

在 Vue.js 中,我们可以利用生命周期钩子函数来执行特定阶段的代码。生命周期函数分别对应着 Vue 实例不同的生命周期阶段,在不同的阶段执行相关的操作或逻辑。以下是如何在 Vue 组件中使用created生命周期函数的方法:

在单文件组件中

xml 复制代码
<template>
  <!-- 组件模板 -->
</template>
<script>
export default {
  data() {
    return {
      // 组件数据
    };
  },
  // created 钩子函数:在实例被创建后调用
  created() {
    // 可以访问到组件的 data 和 methods
    console.log('created 函数');
  },
};
</script>

在全局 Vue 实例中

javascript 复制代码
new Vue({
  el: '#app',
  data() {
    return {
      // 全局 Vue 实例的数据
    };
  },
  // created 钩子函数:在实例被创建后调用
  created() {
    console.log('created hook');
  },
});

当然除了created函数之外,也有一些其它的钩子,在实例生命周期的不同阶段调用如 mountedupdateddestroyed

结语

created函数的特点

  1. 数据初始化完成 :在 created 钩子函数中,可以访问到 Vue 实例中的数据(data),计算属性 (computed) 和方法 (methods),它们都已经被初始化了。
  2. 适合发起异步请求和订阅 :由于 created 阶段在实例创建完成后被调用,所以它是一个很好的阶段用于发起异步请求(例如通过 axiosfetch 发起网络请求)或者订阅数据更新。
  3. 无法访问到 DOM 元素和模板编译后的内容:由于此时尚未完成模板编译和挂载阶段,因此无法访问到实例的 DOM 元素。

总之,created 生命周期钩子是在 Vue 实例被创建后立即被调用的阶段,适合进行一些初始化操作、发起异步请求、订阅数据等操作。但需要注意的是,在 created 阶段还无法访问到 DOM 元素和模板编译后的内容。通常,如果需要在 Vue 实例挂载后进行 DOM 操作,则需要在 mounted 钩子函数中执行。

相关推荐
天***88526 分钟前
Edge 浏览器离线绿色增强版+官方安装包,支持win7等系统
前端·edge
漫游的渔夫14 分钟前
别再直接 `json.loads` 了!AI 返回的 JSON 坑位指南
前端·人工智能
软件工程师文艺26 分钟前
从0到1:Claude Code如何用React构建CLI应用
前端·react.js·前端框架
M ? A36 分钟前
Vue 迁移 React 实战:VuReact 一键自动化转换方案
前端·vue.js·经验分享·react.js·开源·自动化·vureact
yuki_uix37 分钟前
重排、重绘与合成——浏览器渲染性能的底层逻辑
前端·javascript·面试
Burt1 小时前
我的 2026 全栈选型:Vue3 + Elysia + Bun + AlovaJS
vue.js·全栈·bun
沃尔威武1 小时前
调试黑科技:Chrome DevTools时间旅行调试实战
前端·科技·chrome devtools
小锋java12341 小时前
SpringBoot 4 + Spring Security 7 + Vue3 前后端分离项目设计最佳实践
java·vue.js·spring boot
一 乐1 小时前
校园线上招聘|基于springboot + vue校园线上招聘系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·校园线上招聘系统
yuki_uix1 小时前
虚拟 DOM 与 Diff 算法——React 性能优化的底层逻辑
前端·react.js·面试