25 在Vue3中使用生命周期函数

概述

Vue 组件生命周期事件发生在组件从创建到删除的生命周期中。必要时,我们可以在组件生命周期的每个阶段添加回调和副作用。

组件事件触发顺序

setup

该事件在所有其他钩子(包括 beforeCreate)之前运行。它无法访问此实例,因为此时实例尚未创建。它主要用于使用 Composition API,处理方式与 Vue 处理脚本设置的方式相同。

beforeCreate

该功能在组件初始化时运行,此时数据尚未被反应,DOM 中也未设置事件。

created

您可以访问反应式数据和事件,但模板和 DOM 不会加载或渲染。一般来说,从服务器请求异步数据时适合使用此钩子,因为您很可能会在虚拟 DOM 挂载之前尽早获得这些信息。

beforeMount

这是一个非常不常见的钩子,因为它直接运行在组件的第一次渲染之前,而且不称为服务器端渲染。

mounted

安装钩子是您最常用的钩子之一,因为它们允许您访问 DOM 元素,以便集成非 Vue 库。

beforeUpdate

在组件发生变化后、重新渲染前,它会立即运行。这对于在渲染之前获取反应数据的状态非常有用。

updated

它在 beforeUpdate 钩子之后立即运行,并根据新的数据变化重新渲染组件。

beforeUnMount

该钩子会在卸载组件实例前直接触发。在卸载钩子被调用之前,组件仍将正常运行,从而允许您停止事件侦听器和数据订阅,以避免内存泄漏。请注意,在 Vue 2.x 中,该事件被称为 beforeDestroy。

unmounted

Vue 实例中的所有虚拟 DOM 元素和事件侦听器都已清理完毕。通过此钩子,您可以将此信息传达给需要知道此操作已完成的任何人或任何元素。在 Vue 2.x 中,该事件被称为 destroyed。

基本用法

我们创建src/components/Demo25.vue,在这个组件中,我们要:

  • 1:实现mounted生命周期方法
  • 2:实现beforeMount方法

代码如下:

<script setup>
import {onBeforeMount, onMounted} from "vue";onMounted(() => {alert("实现mounted生命周期方法")
})
onBeforeMount(() => {alert("实现beforeMount方法")
})
</script>
<template><div><h3>演示生命周期方法</h3></div>
</template>

接着,我们修改src/App.vue,引入Demo24.vue并进行渲染:

<script setup>
import Demo from "./components/Demo25.vue"
</script>
<template><h1>欢迎跟着Python私教一起学习Vue3入门课程</h1><hr><Demo/>
</template>

然后,我们浏览器访问:http://localhost:5173/

在这里插入图片描述

完整代码

package.json

{"name": "hello","private": true,"version": "0.1.0","type": "module","scripts": {"dev": "vite","build": "vite build"},"dependencies": {"vue": "^3.3.8"},"devDependencies": {"@vitejs/plugin-vue": "^4.5.0","vite": "^5.0.0"}
}

vite.config.js

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'export default defineConfig({plugins: [vue()],
})

index.html

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><link rel="icon" type="image/svg+xml" href="/vite.svg" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Vite + Vue</title></head><body><div id="app"></div><script type="module" src="/src/main.js"></script></body>
</html>

src/main.js

import { createApp } from 'vue'
import App from './App.vue'createApp(App).mount('#app')

src/App.vue

<script setup>
import Demo from "./components/Demo25.vue"
</script>
<template><h1>欢迎跟着Python私教一起学习Vue3入门课程</h1><hr><Demo/>
</template>

src/components/Demo25.vue

<script setup>
import {onBeforeMount, onMounted} from "vue";onMounted(() => {alert("实现mounted生命周期方法")
})
onBeforeMount(() => {alert("实现beforeMount方法")
})
</script>
<template><div><h3>演示生命周期方法</h3></div>
</template>

启动方式

yarn
yarn dev

浏览器访问:http://localhost:5173/

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一步步教你创建酒店预订小程序

如果你想为你的酒店或旅馆创建一个预订小程序&#xff0c;这篇文章将为你提供详细的步骤和指南。我们将按照以下顺序进行&#xff1a; 一、进入乔拓云网后台 首先&#xff0c;打开乔拓云网的官方网站&#xff0c;点击右上角的“登录”按钮&#xff0c;登录成功后&#xff0c;点…

【Docker】基础篇

文章目录 Docker为什么出现容器和虚拟机关于虚拟机关于Docker二者区别&#xff1a; Docker的基本组成相关概念-镜像&#xff0c;容器&#xff0c;仓库安装Docker卸载docker阿里云镜像加速docker run的原理**为什么容器比虚拟机快**Docker的常用命令1.帮助命令2.镜像相关命令3.容…

FIO测试参数与linux内核IO栈的关联分析-part1

一、Linux IO栈 一个常见Linux IO处理流程示意图如下&#xff1a; 这个示意图主要描述了Linux系统中I/O请求的处理流程&#xff0c;涉及了I/O接口、文件系统、块层、NVMe驱动等多个部分&#xff0c;整个IO流程处理主要概括以下步骤&#xff1a; 1. 应用程序&#xff08;Appli…

字符串函数内存函数(从零到一)【C语言】

长度不受限制的字符串函数&#xff1a;strcpy,strcat,strcmp 长度受限制的字符串函数&#xff1a;strncpy,strncat,strncmp strlen strlen函数是库函数中我们最常使用的函数&#xff0c;它可以求出字符串的长度(不包含‘\0’) 使用方法 通过前面对strlen函数的模拟实现我们知…

c语言力扣题目:消失的数字(有关时间复杂度O(N²)O(N))以及对异或操作符的更深入的理解(如何用人脑的十进制去考量二进制)

目录 Way One :暴力求解,时间复杂度为 O(N) 代码1 Way Two : 时间复杂度限制到 O(N) 代码及其详解 如题 Way One :暴力求解,时间复杂度为 O(N) 大体思路:比如这里我们需要处理的整型数组是"3,0,1",我们可以用冒泡排序或者 qsort函数将他从大到小进行排序成"…

【数组Array】力扣-1094 拼车

目录 题目描述 解题过程 题目描述 车上最初有 capacity 个空座位。车 只能 向一个方向行驶&#xff08;也就是说&#xff0c;不允许掉头或改变方向&#xff09; 给定整数 capacity 和一个数组 trips , trip[i] [numPassengersi, fromi, toi] 表示第 i 次旅行有 numPassen…

理解pom.xml中的parent标签

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 循序渐进学SpringBoot ✨特色专栏&…

06:2440----异常与中断

目录 一:概念的引入 1:ARM系统 2:CPU处理中断的过程 3:ARM对异常&#xff08;中断&#xff09;处理的过程 4:软/硬件工作分配 二:CPU模式状态与寄存器 1:ARM CPU的七种工作模式 2:state 3:寄存器 A:寄存器情况 B:CPSR C:状态位和保留位 D:协同工作 E:异常向量表 …

Text2SQL学习整理(四)将预训练语言模型引入WikiSQL任务

导语 上篇博客&#xff1a;Text2SQL学习整理&#xff08;三&#xff09;&#xff1a;SQLNet与TypeSQL模型简要介绍了WikiSQL数据集提出后两个早期的baseline&#xff0c;那时候像BERT之类的预训练语言模型还未在各种NLP任务中广泛应用&#xff0c;因而作者基本都是使用Bi-LSTM…

广东建筑模板价格一览表

在建筑行业&#xff0c;合适的建筑模板是确保工程顺利进行的关键材料之一。在选择建筑模板时&#xff0c;除了质量、材质等因素外&#xff0c;价格也是一个重要的考虑因素。本文将提供一个广东建筑模板的价格一览表&#xff0c;以供业内人士参考。需要注意的是&#xff0c;以下…

SpringSecurity入门

前言 Spring Security是一个用于在Java应用程序中提供身份验证和授权功能的强大框架。它构建在Spring框架之上&#xff0c;为开发人员提供了一套灵活且全面的安全性服务&#xff0c;本篇将为大家带来Spring Security的详细介绍及入门 一.安全框架 在学习了解Spring Security之…

【qt信号槽-5】信号槽相关注意事项记录

背景&#xff1a; 信号槽是qt很重要的概念&#xff0c;遇到问题帮助没少看。其中就有signals and slots这一章节&#xff0c;说得很到位。 概念琐碎&#xff0c;记录备忘。不对之处望指正。 【qt信号槽-1】槽函数重写问题&#xff0c;qt_metacall和qt_static_metacall-CSDN博…