我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue3改了几个生命周期函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue3改了几个生命周期函数

vue3改了几个生命周期函数

本教程操作环境:windows7系统、vue3版,DELL G3电脑。

Vue实例有一个完整的生命周期,也就是从new Vue()、初始化事件(.once事 件)和生命周期、编译模版、挂载Dom -> 渲染、更新 -> 渲染、卸载等⼀系列过程,称这是Vue的生命周期。

vue应用程序中有4个主要事件(8个钩子):

创建 ---- 在组建创建时执行
挂载 ---- DOM被挂载时执行
更新 ---- 当响应数据被修改时执行
销毁 ----在元素被销毁之前立即执行

Vue2的生命周期

1.png

(1) beforeCreate(创建前)

数据监测(getter和setter)和初始化事件还未开始,此时 data 的响应式追踪、
event/watcher 都还没有被设置

不能访问到data、computed、watch、methods上的方法和数据。

(2)created(创建后)

创建完成后会自动执行函数

(3) beforeMount(挂载前)

在挂载开始之前被调用,相关的render函数首次被调用。

这次Vue开始解析模板,生成虚拟DOM存在内存中,还没有把虚拟DOM转换成真实DOM,插入页面中

(4)mounted(挂载后)

在el被新创建的 vm.$el(就是真实DOM的拷贝)替换,并挂载到实例上去之后调用(将内存中的虚拟DOM转为真实DOM,真实DOM插入页面)。

一般在这个阶段进行:开启定时器,发送网络请求,订阅消息,绑定自定义事件等等

(5)beforeUpdate(更新前)

响应式数据更新时调用,此时虽然响应式数据更新,但是对应的真实 DOM 

还没有被渲染(数据是新的,但页面是旧的,页面和数据没保持同步呢)。

(6)updated(更新后)

由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用。

调用时,组件 DOM已经更新,所以可以执行依赖于DOM的操作。然而在大多数情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环

(7)beforeDestroy(销毁前)

实例销毁之前调用

在这个阶段一般进行关闭定时器,取消订阅消息,解绑自定义事件。

(8)destroyed(销毁后)

实例销毁后调用,调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。该钩子在服务端渲染期间不被调用。

<!DOCTYPE html><html>
	<head>
		<meta charset="UTF-8" />
		<title>分析生命周期</title>
		<!-- 引入Vue -->
		<script type="text/javascript" class="lazy" data-src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 准备好一个容器-->
		<div id="root" :x="n">
			<h2 v-text="n"></h2>
			<h2>当前的n值是:{{n}}</h2>
			<button @click="add">点我n+1</button>
			<button @click="bye">点我销毁vm</button>
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		new Vue({
			el:'#root',
			// template:`
			// 	<div>
			// 		<h2>当前的n值是:{{n}}</h2>
			// 		<button @click="add">点我n+1</button>
			// 	</div>
			// `,
			data:{n:1},
			methods: {
				add(){
					console.log('add')
					this.n++
				},
				bye(){
					console.log('bye')
					this.$destroy()
				}
			},
			watch:{
				n(){
					console.log('n变了')
				}
			},
			beforeCreate() {
				console.log('beforeCreate')
			},
			created() {
				console.log('created')
			},
			beforeMount() {
				console.log('beforeMount')
			},
			mounted() {
				console.log('mounted')
			},
			beforeUpdate() {
				console.log('beforeUpdate')
			},
			updated() {
				console.log('updated')
			},
			beforeDestroy() {
				console.log('beforeDestroy')
			},
			destroyed() {
				console.log('destroyed')
			},
		})
	</script></html>

常用的生命周期钩子:
1.mounted: 发送ajax请求、启动定时器、绑定自定义事件、订阅消息等【初始化操作】。
2.beforeDestroy: 清除定时器、解绑自定义事件、取消订阅消息等【收尾工作】
关于销毁Vue实例:
(1)销毁后借助Vue开发者工具看不到任何信息。
(2)销毁后自定义事件会失效,但原生DOM事件依然有效。
(3)一般不会在beforeDestroy操作数据,因为即便操作数据,也不会再触发更新流程了。

Vue3的生命周期

2.png

(1) onBeforeMount

在挂载之前被调用,渲染函数render首次被调用

(2) onMounted

组件挂载时调用

(3) onBeforeUpdate

数据更新时调用,发生在虚拟DOM打补丁之前。

(4) onUpdated

因数据更改导致的虚拟DOM重新渲染和打补丁时调用

(5) onBeforeUnmount

在卸载组件实例之前调用,此阶段的实例依旧是正常的。

(6) onUnmounted

卸载组件实例后调用,调用此钩子时,组件实例的所有指令都被解除绑定,所有事件侦听器都被移除,所有子组件实例被卸载。


vue2与vue3在生命周期的区别

vue2vue3
beforeCreatesetup() 开始创建组件之前,创建的是data和method
createdsetup()
beforeMountonBeforeMount 组件挂载到节点上之前执行的函数。
mountedonMounted 组件挂载完成后执行的函数
beforeUpdateonBeforeUpdate 组件更新之前执行的函数。
updatedonUpdated 组件更新完成之后执行的函数。
beforeDestroyonBeforeUnmount 组件挂载到节点上之前执行的函数。
destroyedonUnmounted 组件卸载之前执行的函数。

总结:

1、Vue3 组合式api取消了 beforeCreated 和 created 钩子函数 , 采用steup钩子代替 且里面不能使用 this

2、Vue3里面的组件销毁的钩子函数换成了 beforeUnmount 和 unmounted 之前是 destroyed和beforeDestroy 但是要注意 如果Vue3 使用 Vue2 的选择式写法 之前的钩子函数还是可以使用

3、Vue3的组合式api生命周期函数 要比Vue2 选择式 api 的生命周期多个前缀 on ,而且要 import 单独引入

相关推荐:vue.js视频教程

以上就是vue3改了几个生命周期函数的详细内容,更多请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue3改了几个生命周期函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue3改了几个生命周期函数

vue3改了4个生命周期函数。Vue3组合式api取消了beforeCreated和created钩子函数,采用steup钩子代替,且里面不能使用this。Vue3里面的组件销毁的钩子函数由destroyed和beforeDestroy换成了beforeUnmount和unmounted。
2023-05-14

vue3生命周期函数改了几个

这篇“vue3生命周期函数改了几个”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3生命周期函数改了几个”文章吧。vue
2023-07-06

vue3生命周期函数更改了几个

这篇文章主要介绍“vue3生命周期函数更改了几个”,在日常操作中,相信很多人在vue3生命周期函数更改了几个问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue3生命周期函数更改了几个”的疑惑有所帮助!接下来
2023-07-05

Vue3中的生命周期函数有哪些

本篇内容介绍了“Vue3中的生命周期函数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!生命周期钩子函数每个 Vue 组件实例在创建时都
2023-07-05

深入浅析Vue3中的生命周期函数

大家看完本篇文章你对Vue的生命周期函数是否有了更深入的了解呢?对组合式API的钩子函数用法是否掌握了呢?并且在我们组合式API中的钩子函数是可以被定义多次的哦,更能够体现出我们组合式API的可维护性扩展性;当然本篇文章中凉哥只带领大家尝试了两个钩子函数,其余的钩子函数伙伴们可以自行尝试哦!
2023-05-14

servlet生命周期分几个阶段

Servlet生命周期可以分为以下四个阶段:1. 加载和实例化(Loading and Instantiation):在Web容器启动时,它会根据web.xml文件中的配置信息加载和实例化Servlet,并调用其init()方法进行初始化。
2023-08-25

servlet生命周期有几个阶段

servlet的生命周期包括以下几个阶段:1. 加载阶段(Loading):当容器启动时,会加载servlet类,并创建servlet实例。2. 初始化阶段(Initialization):在servlet实例创建后,容器会调用servle
2023-08-26

vue的生命周期几个阶段

有4大阶段:1、初始化阶段,包含beforeCreate(创建前)和created(创建后)两个小阶段;2、挂载阶段,包含beforeMount(载入前)和mounted(载入后)两个小阶段;3、更新阶段,包含beforeUpdate(更新前)和updated(更新后)两个小阶段;4、销毁阶段,beforeDestroy(销毁前)和destroyed(销毁后)两个小阶段。
2023-05-14

vue3生命周期原理与生命周期函数简单应用实例分析 原创

这篇文章主要介绍了vue3生命周期原理与生命周期函数,结合简单实例形式分析了vue3的生命周期基本原理、以及各个阶段的生命周期钩子函数功能、使用技巧与相关注意事项,需要的朋友可以参考下
2023-05-17

vue的生命周期分为几个阶段

本篇内容介绍了“vue的生命周期分为几个阶段”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Vue.js是一种前端开发框架,它采用了一些方便开
2023-07-06

JSP生命周期走过哪几个阶段

这篇文章主要介绍了JSP生命周期走过哪几个阶段的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JSP生命周期走过哪几个阶段文章都会有所收获,下面我们一起来看看吧。JSP生命周期就是从创建到销毁的整个过程,类似于s
2023-06-27

Golang函数生命周期的扩展

go 函数的生命周期涵盖从声明到退出的过程,但可通过以下方式扩展:init() 函数:在任何其他函数调用前执行,用于初始化全局变量等操作。defer 语句:将函数调用推迟到函数退出时执行,用于释放资源或进行清理。Go 函数生命周期扩展Go
Golang函数生命周期的扩展
2024-04-18

golang函数与goroutine的生命周期

函数生命周期:声明和编译:编译器验证函数的语法和类型。执行:函数调用时执行。返回:执行完毕后返回调用位置。goroutine 生命周期:创建和启动:通过 go 关键字创建并启动。执行:异步运行直到完成任务。结束:任务完成或出现错误时结束。清
golang函数与goroutine的生命周期
2024-04-25

Vue生命周期函数有哪些

小编给大家分享一下Vue生命周期函数有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.BeforeCreate()Vue实例已经创建,但是data,和methods中的数据和方法都未被初始化。就是说你可以在befor
2023-06-22

Golang函数的生命周期控制

go 语言函数的生命周期包括:声明阶段、调用阶段和返回阶段。实战案例:简单函数:在声明阶段定义,在调用阶段通过函数名调用,在返回阶段返回结果。defer 函数:在返回阶段执行指定代码,用于释放资源或善后操作。闭包:可以访问其定义作用域外部变
Golang函数的生命周期控制
2024-04-18

编程热搜

目录