0

0

如何应用方法以及理解Vue 3的生命周期原理

王林

王林

发布时间:2023-05-10 08:10:22

|

1855人浏览过

|

来源于亿速云

转载

原理概述

vue 3的生命周期(lifecycle)指的是组件从创建到销毁经历的一系列事件,在这些事件中可以执行一些操作,例如初始化数据、渲染视图、加载异步数据等。在vue 3中,通过setup()函数来定义组件的生命周期。

实例分析

Vue 3的生命周期包含了以下几个阶段:

1. beforeCreate

在实例创建之前,即在初始化之前被调用。此时,尚未初始化组件实例,无法访问data、methods和computed等属性,在组件状态初始化之前执行一些操作。

export default {
  beforeCreate() {
    console.log('beforeCreate');
  }
}

2. created

在实例创建之后,即在初始化之后被调用。此时,已经完成了数据观测等配置,但尚未挂载DOM,并且可以访问data、methods和computed等属性。可以使用created钩子函数进行数据初始化和事件的监听等操作。

import { onMounted, onUnmounted } from 'vue';

export default {
  data() {
    return {
      count: 0
    };
  },
  created() {
    console.log('created');
  },
  mounted() {
    onMounted(() => {
      console.log('component mounted');
    });
  },
  unmounted() {
    onUnmounted(() => {
      console.log('component unmounted');
    });
  }
}

3. beforeMount

在挂载开始之前被调用。在此阶段中,尚未渲染真实的DOM节点。可以使用beforeMount钩子函数,在组件挂载之前进行一些异步操作,例如加载动画等。

立即学习前端免费学习笔记(深入)”;

export default {
  beforeMount() {
    console.log('beforeMount');
  }
}

4. mounted

在挂载结束后被调用。此时,组件已经渲染出真实的DOM。mounted钩子函数往往用于初始化DOM操作以及与服务器交互后填充组件的数据,例如通过ref获取DOM节点和注册事件监听器等。

刺鸟创客
刺鸟创客

一款专业高效稳定的AI内容创作平台

下载
export default {
  mounted() {
    console.log('mounted');
    const button = this.$refs.myButton;
    button.addEventListener('click', () => {
      this.count++;
    });
  }
}

5. beforeUpdate

在数据更新之前被调用。此时,可以在更新之前访问旧的数据状态。可以使用beforeUpdate钩子函数,在组件数据更新之前执行一些操作,例如动态绑定class和style等。

export default {
  beforeUpdate() {
    console.log('beforeUpdate');
  }
}

6. updated

在数据更新之后被调用。此时,组件已经更新DOM,可以通过访问最新的数据状态来完成DOM的操作。可以使用updated钩子函数,在组件数据更新之后执行一些操作,例如触发动画效果等。

export default {
  updated() {
    console.log('updated');
  }
}

7. beforeUnmount

在组件卸载之前被调用。此时,组件实例仍然完全可用,但是它的视图已经被销毁并且不再更新。可以使用beforeUnmount钩子函数,在组件卸载之前执行一些清理操作,例如取消事件监听器、定时器和异步请求等。

export default {
  beforeUnmount() {
    console.log('beforeUnmount');
  }
}

8. unmounted

在组件卸载之后被调用。此时,组件实例以及其所有相关联的DOM元素均已销毁,无法再访问组件内部数据和方法。可以使用unmounted钩子函数,在组件卸载之后执行一些最终清理操作。

export default {
  unmounted() {
    console.log('unmounted');
  }
}

需要注意的是,Vue 3中去掉了一些生命周期函数,例如activated、deactivated和errorCaptured等,这些可以通过新的Composition API来实现。

相关专题

更多
C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

9

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

31

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

14

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

42

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

6

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

6

2026.01.15

php图片上传教程汇总
php图片上传教程汇总

本专题整合了php图片上传相关教程,阅读专题下面的文章了解更多详细教程。

2

2026.01.15

phpstorm相关教程大全
phpstorm相关教程大全

本专题整合了phpstorm相关教程汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 1.4万人学习

Vue3.x 核心篇--十天技能课堂
Vue3.x 核心篇--十天技能课堂

共30课时 | 1.5万人学习

Vue3.x新特性篇--十天基础课堂
Vue3.x新特性篇--十天基础课堂

共20课时 | 1.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号