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 方法の分析

推薦する

JavaScript を使用してカルーセル効果を実装する

この記事では、カルーセルマップの特殊効果を実現するためのJavaScriptの具体的なコードを参考ま...

vscode で Prettier Code プラグインを使用する詳細なチュートリアル

なぜprettierを使うのですか?大企業では、フロントエンド開発コードに独自のコード標準がある場合...

高度な JavaScript フロントエンド開発でよく使用されるいくつかの API の例の詳細な説明

目次ミューテーションオブザーバーAPI特徴インターセクションオブザーバーAPI例えば画像の遅延読み込...

CSS でフロートとマージンを混合するサンプルコード

最近の勉強で、GitHub でレイアウトの練習をいくつか見つけたのですが、レイアウトにまったく慣れて...

Docker で Java 8 Spring Boot アプリケーションを開発する方法

この記事では、ローカル マシンに Java 8 をインストールせずに、Java 8 を使用して簡単な...

ドラッグアンドドロップによる並べ替えの詳細を実現する js

目次1. はじめに2. 実装3. HTML ドラッグ アンド ドロップ API を使用しないのはなぜ...

React コンポーネントのコンストラクタとスーパーの知識ポイントのまとめ

1. Reactでクラス宣言する際のヒント 上記のように、Child クラスは class キーワー...

Nodeはkoa2を使用してシンプルなJWT認証方式を実装します

JWT の紹介JWTとは正式名称はJSON Web Tokenで、現在最も人気のあるクロスドメイン認...

Vue で Google サードパーティ ログインを実装するためのサンプル コード

目次1. 開発者プラットフォームの構成問題を解決する1. 開発者プラットフォームの構成1. 開発者プ...

CocosCreatorでJSZip圧縮を使用する方法

CocosCreator バージョン: 2.4.2 jszipの実践的なプロジェクトアプリケーション...

小規模プログラムへのデータキャッシュ機構の応用と実装

ミニプログラムデータキャッシュ関連知識データ キャッシュ: データをキャッシュして、アプレットを終了...

JavaScript シングルスレッドと非同期の詳細

目次1. タスクキュー2. 混乱を招く問題を説明する1. setTimeout(f1,0)とは何です...

Python MySQL データベース テーブルの変更とクエリ

Python は MySQL に接続してデータベース テーブルを変更およびクエリします。 pytho...

jsはフォーム検証機能を実装します

この記事の例では、フォーム検証機能を実装するためのjsの具体的なコードを参考までに共有しています。具...

Flash での HTML と CSS の適用

Flash での HTML と CSS の適用:同僚の Den が Flash で HTML と C...