Vueライフサイクルの違いの詳細な説明

Vueライフサイクルの違いの詳細な説明

ライフサイクル分類

vue の各コンポーネントは独立しており、各コンポーネントには独自のライフサイクルがあります。

コンポーネントの作成データの初期化マウント更新破棄まで、これがコンポーネントのライフサイクルと呼ばれるものです。
コンポーネント内の具体的なメソッドは次のとおりです。
作成前
作成された
マウント前
マウントされた
更新前
更新されました
破棄前
破壊された

作成前

インスタンスの初期化後、データの監視とイベントの設定前に呼び出されます。この時点では、コンポーネントのオプション オブジェクトは作成されておらず、el とデータは初期化されていないため、メソッドにアクセスできません。
データに関する方法とデータ、計算など。

作成された

これは、インスタンスが作成された後に呼び出されます。このステップでは、インスタンスは、データの監視、プロパティとメソッドの計算、ウォッチ/イベント イベントのコールバック、および完了したデータの初期化などの構成を完了していますが、el はまだ完了していません。 ただし、ハング段階はまだ開始されておらず、$elプロパティはまだ表示されていません。これは、メソッド内のメソッドを呼び出し、データ内のデータを変更し、その変更がVueのレスポンシブバインディングを通じてページに反映され、計算されたプロパティがcomputedで取得されるなど、一般的なライフサイクルです。通常、ここでインスタンスを前処理できます。

beforeMount(マウント前)

ハングが始まる前に呼び出され、関連するレンダリング関数が初めて呼び出されます (仮想 DOM)。インスタンスは、テンプレートのコンパイル、データとテンプレート内のデータからの HTML の生成、el とデータの初期化の完了という構成を完了しています。ページへの HTML にはまだハングしていないことに注意してください。

マウントされた

マウントが完了し、テンプレート内の HTML が HTML ページにレンダリングされます。この時点で、通常、いくつかの ajax 操作を実行でき、マウントは 1 回だけ実行されます。

更新前

データが更新される前、仮想 DOM が再レンダリングされてパッチが適用される前に呼び出されます。追加の再レンダリング プロセスをトリガーせずに、このフックで状態をさらに変更できます。

更新されました

このフックは、データの変更により仮想 DOM が再レンダリングされ、パッチが適用された場合にのみ呼び出されます。呼び出されると、コンポーネント DOM が更新されているため、DOM に依存する操作を実行できます。ただし、ほとんどの場合、この期間中に状態を変更すると更新の無限ループが発生する可能性があるため、このフックは避ける必要があります。このフックは、サーバー側レンダリング中には呼び出されません。

破棄前

インスタンスが破棄される前に呼び出されると、インスタンスは引き続き完全に使用可能です。
このステップでは、これを使用してインスタンスを取得することもできます。
通常、このステップでは、コンポーネント内のタイマーをクリアしたり、DOMイベントを監視したりするなどのリセット操作が実行されます。

破壊された

インスタンスが破棄された後に呼び出されます。呼び出し後、すべてのイベント リスナーが削除され、すべての子インスタンスが破棄されます。このフックは、サーバー側のレンダリング中には呼び出されません。
vueインスタンスはイベントリスナーとDOMバインディングを解放しましたが、DOM構造はまだ存在しています

実行順序(図)

ここに画像の説明を挿入

Vue ライフサイクルの違いについての詳細説明はこれで終了です。Vue ライフサイクルに関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue2とVue3のライフサイクルの比較の詳細な理解
  • Vueライフサイクルの詳細な説明
  • VUE ユニアプリライフサイクルに関する簡単な説明
  • Vueライフサイクルの詳細な理解
  • Vueのライフサイクルについての簡単な説明

<<:  mysql 一時テーブルの使用状況の分析 [クエリ結果は一時テーブルに保存できます]

>>:  docker を使用して kafka プロジェクトをデプロイする Centos6 方法の分析

推薦する

Vue プロジェクトがページング効果を実現

ページング効果は、参考までにvueプロジェクトに実装されています。具体的な内容は次のとおりです。 1...

HTML の値属性と名前属性の機能と使用法の紹介

1. ボタンで使用される値は、「OK」、「削除」など、ボタンに表示されるテキストを指します。 2. ...

Vue で PC アドレスをモバイル アドレスにリダイレクトする方法

要件:PC側とモバイル側は2つの独立したプロジェクトです。2つのプロジェクトの内容は基本的に同じで、...

Reactの親コンポーネントと子コンポーネント間のデータ転送の詳細な説明

目次1. 親コンポーネントが子コンポーネントにデータを渡す1.1. 親コンポーネントコード1.2. ...

VantフレームワークをWeChatアプレットに導入するプロセス全体の記録

序文WeChat ミニプログラムのネイティブ UI が少し物足りないと感じることがあるので、サードパ...

階段を転がす特殊効果を実現する JavaScript (jQuery 実装)

皆さんもJDを使ったことがあると思います。ホームページには非常によく見られる機能があります。階段の特...

JavaScriptにおける評価戦略の詳細な説明

目次それを覆う栗パラメータの受け渡し値渡し共同配送要約する拡張機能 - 遅延評価私は最近、JavaS...

Vue Element-ui はツリーコントロールノードを実装し、アイコンを追加します。詳細な説明

目次1. レンダリング2. データをバインドし、ツリーテーブルにラベルを追加する3. すべてのコード...

PXEを使用してCentOS7.6を自動的にインストールする方法の詳細なチュートリアル

1. 需要ベースには 300 台の新しいサーバーがあり、CentOS7.6 オペレーティング システ...

nginx 設定場所方法の概要

位置一致順序1. 「=」プレフィックス命令マッチング、マッチングが成功したら他のマッチングを停止2....

JS の効率的なマジック演算子の概要

JavaScript は現在、毎年新しいバージョンがリリースされており、より便利で効率的な新しい演算...

WeChatアプレット開発で遭遇したことのない落とし穴のまとめ

目次getApp()ページエントリファイルの先頭に変数を定義しますwx.createSelector...

mysql5.7.14 解凍版インストールと設定方法 グラフィックチュートリアル (win10)

Win10はmysql5.7の解凍版をインストールします。参考までに、具体的な内容は次のとおりです...

Quill エディタでカスタム HTML レコードを挿入する詳細な例

もう2020年です。飢えた人間は単純なテキストでは満足できなくなり、さまざまなスタイルの派手なテキス...

Dockerイメージとコンテナの一般的な操作の詳細な説明

画像アクセラレータ中国の Docker Hub からイメージをプルすることが難しい場合があります。こ...