Vue.js --- 生命周期

1. 前言

在 Vue.js 中,生命周期是指一个 Vue 实例从创建到销毁的过程。Vue 提供了一系列的生命周期钩子(lifecycle hooks),让开发者可以在不同的阶段执行特定的代码。了解这些生命周期钩子是构建 Vue 组件的基础,能够帮助你在合适的时机执行代码,处理数据和事件。 

2. 生命周期

2.1 创建阶段

该阶段包括实例的初始化和设置,在此阶段无法在DOM文件中查看到我们的Vue组件的信息

- beforeCreate

实例被创建之后,数据观测和事件配置之前被调用的钩子,在此阶段无法访问data与methods

beforeCreated(){
    console.log('beforeCreate:实例被创建之前')
}

- created

在实例创建完成后被调用,在此阶段,实例已经完成数据观测以及事件配置,可以访问data与methods

created(){
    console.log('created:实例已创建,可以访问data&methods')
}

2.2 挂载阶段

这个阶段包括将组件挂载到DOM中

- beforeMount

在挂载之前被调用,在该阶段,模板并没有被渲染到DOM

beforemount(){
    console.log('beforemount:模板尚未被挂载到 DOM')
}

- mounted

在挂载后被调用,此时组件已被渲染到 DOM 中。可以在这里进行 DOM 操作或发送 AJAX 请求

mounted() {
    console.log('mounted: 组件已挂载到 DOM 中。');
  }

2.3 更新阶段

这个阶段包括当数据变化时,组件的重新渲染

- beforeUpdate

在数据变化后,DOM 重新渲染之前被调用。在这个阶段可以进行一些操作,但不要直接修改数据。

beforeUpdate() {
    console.log('beforeUpdate: 数据变化前调用。');
  }

- updated

在组件重新渲染后被调用。此时可以访问更新后的 DOM

updated(){
    console.log('updated:数据变化后调用')
}

2.4 销毁阶段

该阶段包含组件的销毁过程

- beforeDestroy

在实例销毁之前被调用。在这个阶段,实例仍然可以访问到数据和方法,可以进行清理操作(例如,清除定时器、解除事件监听等)

beforeUpdated(){
    console.log('beforeDestroy:实例销毁前被调用,清理相关资源')
}

- destroyed

在实例销毁后被调用,在此阶段,所有的事件监听与子实例都会被解除

destroyed(){
    console.log('destroyed:实例已被销毁')
}

3. 实例

使用生命周期钩子函数进行数据加载,DOM操作和清理工作

<template>
  <div>
    <h1>用户列表</h1>
    <ul v-if="users.length">
      <li v-for="user in users" :key="user.id">{{ user.name }}</li>
    </ul>
    <p v-else>加载中...</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      users: [],  // 存储用户数据
      loading: true,  // 控制加载状态
      timer: null  // 存储定时器 ID
    };
  },
  created() {
    console.log('组件创建完成,数据尚未挂载到页面');
    this.fetchUsers();  // 模拟从 API 获取数据
  },
  mounted() {
    console.log('组件挂载到页面,数据已经加载完毕');
    // 模拟定时器操作
    this.timer = setInterval(() => {
      console.log('定时器正在运行...');
    }, 1000);
  },
  beforeUpdate() {
    console.log('组件数据即将更新');
  },
  updated() {
    console.log('组件数据更新完成');
  },
  beforeDestroy() {
    console.log('组件销毁前,清理工作开始');
    if (this.timer) {
      clearInterval(this.timer);  // 清除定时器
    }
  },
  destroyed() {
    console.log('组件销毁后,所有清理工作完成');
  },
  methods: {
    fetchUsers() {
      // 模拟从 API 获取数据
      setTimeout(() => {
        this.users = [
          { id: 1, name: 'Alice' },
          { id: 2, name: 'Bob' },
          { id: 3, name: 'Charlie' }
        ];
        this.loading = false;
      }, 2000);  // 假装这个请求需要2秒钟
    }
  }
};
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/924330.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用1panel一键安装Ollama WebUI连接本地Ollama使用开源ai模型

当前我的环境 设备有限只有一张3060 12gb显卡&#xff0c;平时用来轻度学习 主机&#xff1a;windows server Ollama&#xff1a;windows版&#xff08;它也有linux和mac&#xff09; 因虚拟机使用的服务器无显卡&#xff0c;只用来跑面板和WebUi 虚拟机&#xff1a;ubuntu se…

任意文件读取漏洞(CVE-2024-7928)修复

验证CVE-2024-7928问题是否存在可以使用如下方法&#xff1a; https://域名/index/ajax/lang?lang..//..//目录名/文件名&#xff08;不带后缀&#xff09; 目录名是该项目的一个目录&#xff0c;这里目录位置为nginx设置站点目录为基准&#xff0c;网上两层目录。 文件名…

房屋出租出售预约系统支持微信小程序+H5+APP

核心功能有&#xff1a;新盘销售、房屋租赁、地图找房、小区找房&#xff0c;地铁找房等方式。 地图找房&#xff1a;通过地图标注查看附近房源&#xff0c;方便用户根据地理位置查找合适的房产。二手房资讯&#xff1a;提供租房及二手房市场的相关资讯&#xff0c;帮助用户了…

设计模式:11、迭代器模式(游标)

目录 0、定义 1、迭代器模式的四种角色 2、迭代器模式的UML类图 3、示例代码 4、迭代器的next()方法与集合的get(int index)方法的效率对比&#xff08;LinkedList为例&#xff09; 0、定义 提供一种方法顺序访问一个聚合对象中的各个元素&#xff0c;而又不需要暴露该对象…

抓SystemTrace的简易方法

前言&#xff1a; Systrace是分析Android性能问题的神器。一般抓trace命令是需要在AndroidSDK下的\platform-tools\systrace执行\systrace.py&#xff0c;很奇怪我的AndroidSDK并没有systrace文件夹&#xff0c;于是CSDN单独下载了trace文件 但是我一运行.\systrace.py -b 102…

微信小程序 城市点击后跳转 并首页显示被点击城市

在微信小程序中&#xff0c;渲染出城市列表后&#xff0c;如何点击城市&#xff0c;就跳转回到首页&#xff0c;并在首页显示所点击的城市呢&#xff1f; 目录 一、定义点击城市的事件 二、首页的处理 首页&#xff1a;点击成都市会跳转到城市列表 城市列表&#xff1a;点击…

修改IDEA配置导致Spring Boot项目读取application.properties中文乱码问题

之前很多配置都是放在nacos里面&#xff0c;然后这次同事有个配置写在application.properties中&#xff0c;这个配置含有中文&#xff0c;启动之后发现拿到的中文值会乱码&#xff0c;然后就帮忙看了一下问题。 排查问题 经过不停的百度、排查发现&#xff0c;spring读取app…

STM32F103系列单片机通用和复用I/O(GPIO)

一、GPIO功能描述 每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL&#xff0c; GPIOx_CRH)&#xff0c;两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR)&#xff0c;一个32位置位/复位寄存器(GPIOx_BSRR)&#xff0c;一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。…

从 App Search 到 Elasticsearch — 挖掘搜索的未来

作者&#xff1a;来自 Elastic Nick Chow App Search 将在 9.0 版本中停用&#xff0c;但 Elasticsearch 拥有你构建强大的 AI 搜索体验所需的一切。以下是你需要了解的内容。 生成式人工智能的最新进展正在改变用户行为&#xff0c;激励开发人员创造更具活力、更直观、更引人入…

《生成式 AI》课程 第7講:大型語言模型修練史 — 第二階段: 名師指點,發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始)

资料来自李宏毅老师《生成式 AI》课程&#xff0c;如有侵权请通知下线 Introduction to Generative AI 2024 Springhttps://speech.ee.ntu.edu.tw/~hylee/genai/2024-spring.php 摘要 这一系列的作业是为 2024 年春季的《生成式 AI》课程设计的&#xff0c;共包含十个作业。…

LabVIEW动态显示控件方案

在LabVIEW开发中&#xff0c;涉及到动态显示和控制界面的设计时&#xff0c;经常需要根据用户选择的不同参数来动态显示或隐藏相关控件。例如&#xff0c;某些能可能会根据“Type”控件的不同选择显示不同的参数&#xff0c;如“Target”、“Duration”和“EndType”等。在一个…

DVWA靶场——File Inclusion

File Inclusion&#xff08;文件包含&#xff09;漏洞 指攻击者通过恶意构造输入&#xff0c;利用应用程序错误的文件包含机制&#xff0c;导致程序包含并执行未经授权的本地或远程文件。这类漏洞广泛存在于Web应用程序中&#xff0c;尤其是在那些允许用户提供文件路径或URL的地…

Linux自动化构建-make/Makefile

目录 1. 背景2. 基本使用3. 推导过程4. 好用的操作5. 拓展语法 1. 背景 会不会写makefile&#xff0c;从⼀个侧⾯说明了⼀个⼈是否具备完成⼤型⼯程的能⼒⼀个⼯程中的源⽂件不计数&#xff0c;其按类型、功能、模块分别放在若⼲个⽬录中&#xff0c;makefile定义了⼀系列的规…

(STM32)ADC驱动配置

1.ADC驱动&#xff08;STM32&#xff09; ADC模块中&#xff0c;**常规模式&#xff08;Regular Mode&#xff09;和注入模式&#xff08;Injected Mode&#xff09;**是两种不同的ADC工作模式 常规模式&#xff1a;用于普通的ADC转换&#xff0c;是默认的ADC工作模式。 注入…

初级数据结构——二叉搜索树

目录 前言一、定义二、基本操作三、时间复杂度分析四、变体五、动态图解六、代码模版七、经典例题[1.——700. 二叉搜索树中的搜索](https://leetcode.cn/problems/search-in-a-binary-search-tree/)代码题解 [2.——938. 二叉搜索树的范围和](https://leetcode.cn/problems/ra…

48-基于单片机的LCD12864时间调控和串口抱站

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机的公交报站系统&#xff0c;可以手动报站&#xff0c;站名十个。 在lcd12864上显示时间&#xff08;年月日时分秒&#xff09;和站名&#xff0c;时间可以设置&#xff0c; 仿真中可以…

云计算的计算包括哪些内容

‌云计算的计算主要包括以下几种类型‌&#xff1a; ‌分布式计算‌&#xff1a;分布式计算是一种计算方法&#xff0c;它将大型问题分解成多个小任务&#xff0c;然后分配给多个计算机进行处理。这种方法可以提高计算效率和可靠性‌1。‌并行计算‌&#xff1a;并行计算是同时…

PICO 获取设备号 SN码

Unity版本 2020.3.42f1c1PICO SDK版本PICO Unity Integration SDK-3.0.5-20241105Pico设备pico 4ultra 注意 此api暂时只测试企业版本 pico 4ultra 代码 using Unity.XR.PICO.TOBSupport;private void Awake() {bool result PXR_Enterprise.InitEnterpriseService();Debug.L…

如何制作项目网页

一、背景 许多论文里经常会有这样一句话Supplementary material can be found at https://hri-eu.github.io/Lami/&#xff0c;这个就是将论文中的内容或者补充视频放到一个网页上&#xff0c;以更好的展示他们的工作。因此&#xff0c;这里介绍下如何使用前人提供的模板制作我…

圆域函数的傅里叶变换和傅里叶逆变换

空域圆域函数的傅里叶变换 空域圆域函数&#xff08;也称为空间中的圆形区域函数&#xff09;通常指的是在二维空间中&#xff0c;以原点为中心、半径为 a a a的圆内取值为1&#xff0c;圆外取值为0的函数。这种函数可以表示为&#xff1a; f ( x , y ) { 1 if x 2 y 2 ≤ …