検索
ホームページウェブフロントエンドフロントエンドQ&Avue3 ではいくつかのライフサイクル関数が変更されました

vue3 では 4 つのライフサイクル関数が変更されました。 Vue3 結合 API では beforeCreated および created フック関数をキャンセルし、代わりにステップ フックを使用するため、これは使用できません。 Vue3 のコンポーネント破棄のフック関数は、destroyed および beforeDestroy から beforeUnmount および unmounted に変更されました。

vue3 ではいくつかのライフサイクル関数が変更されました

#このチュートリアルの動作環境: Windows7 システム、vue3 バージョン、DELL G3 コンピューター。

Vue インスタンスには完全なライフ サイクルがあります。つまり、

new Vue()、初期化イベント (.once イベント)、ライフ サイクル、テンプレートのコンパイル、Dom のマウント -> レンダリング、更新 - > ; レンダリングやアンロードなどの一連の処理をVueのライフサイクルと呼びます。

vue アプリケーションには 4 つのメイン イベント (8 フック) があります:

Creation----コンポーネントの作成時に実行されます

Mount----DOM が実行されますマウント時
Update ---- レスポンスデータ変更時に実行
destroy ---- 要素が破棄される直前に実行

Vue2 ライフサイクル

vue3 ではいくつかのライフサイクル関数が変更されました

#(1) beforeCreate(作成前)データ監視 (ゲッターとセッター) と初期化イベントはまだ開始されていません。現時点では、データの応答性の追跡と

イベント/ウォッチャーはセットアップされていません


## data、computed、watch、メソッドのメソッドとデータにアクセスできません。

# (2) 作成済み(作成後)

作成後はcompleted 関数

を自動的に実行します (3) beforeMount (マウント前) マウント開始前に

が呼び出されます. に関連するレンダー関数が初めて呼び出されます。

今回、Vue はテンプレートの解析を開始し、仮想 DOM を生成してメモリに保存しますが、まだ仮想 DOM を実際の DOM に変換してページに挿入していません。

(4) マウント (マウント後)

el が新しく作成された vm.$el (実際の vm.$el のコピー) に置き換えられた後に呼び出されます。 DOM) をインスタンスにマウントします (メモリは仮想 DOM から実 DOM に変換され、実 DOM がページに挿入されます)。 # 通常、この段階で実行されます: タイマーの開始、ネットワーク リクエストの送信、メッセージのサブスクライブ、カスタム イベントのバインドなど。

# #(5)beforeUpdate(更新前)

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

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

(6)updated(更新後)

データ変更のため仮想 DOM が再レンダリングされ、パッチが適用された後。

呼び出されると、コンポーネント DOM が更新されるため、DOM に依存する操作を実行できるようになります。ただし、ほとんどの場合、更新の無限ループが発生する可能性があるため、この期間中に状態を変更することは避けるべきです。

# (7) beforeDestroy (破棄前)

##インスタンス破棄前の呼び出し

この段階では、通常、タイマーは閉じられ、メッセージはサブスクライブ解除され、カスタム イベントはバインド解除されます。

(8) destroy (破棄後)

インスタンスが破棄された後に呼び出されます。呼び出し後、 Vue インスタンスはバインド解除され、すべてのイベント リスナーが削除され、すべての子インスタンスが破棄されます。このフックは、サーバー側のレンダリング中には呼び出されません。

nbsp;html>
	
		<meta>
		<title>分析生命周期</title>
		<!-- 引入Vue -->
		<script></script>
	
	
		<!-- 准备好一个容器-->
		<div>
			<h2></h2>
			<h2 id="当前的n值是-n">当前的n值是:{{n}}</h2>
			<button>点我n+1</button>
			<button>点我销毁vm</button>
		</div>
	

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

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

一般的に使用されるライフ サイクル フック: 1.マウント: Ajax リクエストの送信、タイマーの開始、カスタム イベントのバインド、メッセージのサブスクライブなど [初期化操作]。 2.beforeDestroy: タイマーのクリア、カスタム イベントのバインド解除、メッセージの購読解除など [仕上げ作業] Vue インスタンスの破棄について: (1) 破棄後は、何も表示されません。 Vue 開発者ツールの情報。

(2) カスタム イベントは破棄後無効になりますが、ネイティブ DOM イベントは引き続き有効です。

(3) 通常、beforeDestroy ではデータは操作されません。データが操作されても、更新プロセスが再度トリガーされることはないためです。





Vue3 ライフサイクル

##(1) onBeforeMount

はマウント前に呼び出され、レンダリング関数 render が初めて呼び出されますvue3 ではいくつかのライフサイクル関数が変更されました

(2) onMounted

コンポーネントがマウントされるときに呼び出されます

(3) onBeforeUpdate

データが更新されるときに呼び出されます。これは、仮想 DOM にパッチが適用される前に発生します。

(4) onUpdated

データ変更により仮想 DOM が再レンダリングされ、パッチが適用されるときに呼び出されます

(5) onBeforeUnmount

コンポーネント インスタンスをアンインストールする前に呼び出されます。この段階のインスタンスはまだ正常です。

(6) onUnmounted

コンポーネント インスタンスのアンマウント後に呼び出されます。このフックが呼び出されると、コンポーネント インスタンスのすべての命令が呼び出されます。コンポーネント インスタンスのバインドが解除され、すべてのイベント リスナーが削除され、すべての子コンポーネント インスタンスがアンロードされます。


ライフサイクルにおける vue2 と vue3 の違い

vue2vue3beforeCreatesetup() コンポーネント、データ、メソッドの作成を開始する前にが作成されます createdsetup()beforeMountonBeforeMount コンポーネントがマウントされる前に実行されますノード上の関数。 mountedonMounted コンポーネントのマウント完了後に実行される関数 beforeUpdateonBeforeUpdate コンポーネント更新関数以前に実行されました。 updatedonUpdated コンポーネントの更新が完了した後に実行される関数。 beforeDestroyonBeforeUnmount コンポーネントがノードにマウントされる前に実行される関数。 destroyedonUnmounted コンポーネントがアンマウントされる前に実行される関数。

概要:

1. Vue3 結合 API は、beforeCreated および created フック関数をキャンセルし、代わりにステム フックを使用します。

2. Vue3 のコンポーネント破棄のフック関数は beforeUnmount に置き換えられてアンマウントされます。以前のものは破棄されて beforeDestroy になっています。ただし、Vue3 がVue2 の選択的書き込みメソッド、以前のフック関数は引き続き使用できます。

3. Vue3 の複合 API ライフサイクル関数には、Vue2 選択的 API のライフサイクルよりも多くのプレフィックスがあり、別途インポートする必要があります。 .

関連する推奨事項:

vue.js ビデオ チュートリアル

以上がvue3 ではいくつかのライフサイクル関数が変更されましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
vue3改了几个生命周期函数vue3改了几个生命周期函数Jan 13, 2023 pm 05:57 PM

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

如何处理 C++ 函数指针的析构和生命周期管理?如何处理 C++ 函数指针的析构和生命周期管理?Apr 17, 2024 pm 05:48 PM

在C++中,函数指针需要适当的析构和生命周期管理。可以通过以下方式实现:手动析构函数指针,释放内存。使用智能指针,如std::unique_ptr或std::shared_ptr,自动管理函数指针的生命周期。将函数指针绑定到对象,对象生命周期管理函数指针的析构。在GUI编程中,使用智能指针或绑定到对象可确保回调函数在适当的时候被析构,避免内存泄漏和不一致。

servlet生命周期分几个阶段servlet生命周期分几个阶段Feb 23, 2023 pm 01:46 PM

Servlet生命周期是指servlet从创建直到毁灭的整个过程,可分为3个阶段:1、初始化阶段,调用init()方法实现Servlet的初始化工作;2、运行阶段(处理请求),容器会为指定请求创建代表HTTP请求的ServletRequest对象和代表HTTP响应的ServletResponse对象,然后将它们作为参数传递给Servlet的service()方法;3、销毁阶段。

手把手带你利用vue3.x绘制流程图手把手带你利用vue3.x绘制流程图Jun 08, 2022 am 11:57 AM

利用vue3.x怎么绘制流程图?下面本篇文章给大家分享基于 vue3.x 的流程图绘制方法,希望对大家有所帮助!

手把手带你使用Vue开发一个五子棋小游戏!手把手带你使用Vue开发一个五子棋小游戏!Jun 22, 2022 pm 03:44 PM

本篇文章带大家利用Vue基础语法来写一个五子棋小游戏,希望对大家有所帮助!

通过9个Vue3 组件库,看看聊前端的流行趋势!通过9个Vue3 组件库,看看聊前端的流行趋势!May 07, 2022 am 11:31 AM

本篇文章给大家分享9个开源的 Vue3 组件库,通过它们聊聊发现的前端的流行趋势,希望对大家有所帮助!

Vue3中的生命周期函数:快速掌握Vue3的生命周期Vue3中的生命周期函数:快速掌握Vue3的生命周期Jun 18, 2023 am 08:20 AM

Vue3是目前前端界最热门的框架之一,而Vue3的生命周期函数是Vue3中非常重要的一部分。Vue3的生命周期函数可以让我们实现在特定的时机触发特定的事件,增强了组件的高度可控性。本文将从Vue3的生命周期函数的基本概念、各个生命周期函数的作用和使用方法以及实现案例等方面进行详细探究和讲解,帮助读者快速掌握Vue3的生命周期函数。一、Vue3的生命周期函数的

如何控制 Golang 协程的生命周期?如何控制 Golang 协程的生命周期?May 31, 2024 pm 06:05 PM

控制Go协程的生命周期可以通过以下方式:创建协程:使用go关键字启动新任务。终止协程:等待所有协程完成,使用sync.WaitGroup。使用通道关闭信号。使用上下文context.Context。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター