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

推薦する

MySQL トランザクション制御フローと ACID 特性

目次1. ACIDの特性トランザクション制御構文3. トランザクション同時実行例外1. ダーティリー...

Tomcat プロジェクトを展開する一般的な方法のいくつか [テスト済み]

1 / Webプロジェクトファイルをwebappsディレクトリに直接コピーするこれは最も一般的に使...

URLエスケープエンコーディングの特殊文字に基づいて

目次URL 内の特殊文字URL 特殊文字エスケープ、URL 内の一部の文字には特別な意味があり、基本...

mysqlは時間を自動的に追加し、時間を自動的に追加および更新する操作を実装します

時間フィールドは、データベースの使用時によく使用されます。よく使われるのは作成時間と更新時間です。し...

Linux システムで httpd の自動インストールと構成を Ansible で実装する方法

1. Ansibleのプレイブックを使用してhttpdを自動的にインストールする1) まず、Ansi...

MySQL グループ化クエリと集計関数

概要私たちは、双十一に天猫で化粧品を購入する人の平均支出額を知りたい(商品の価格帯を見つけるのに役立...

CentOS の MySQL に MariaDB をインストールするときに発生する方法と問題

以前にインストールしたmariadbを削除する1. rpm -qa | grep mariadb を...

JavaScript配列の一般的なメソッドの詳細な説明

目次一般的な配列メソッドポップ()シフト解除()シフト()スライス()スプライス()配列から重複した...

Web スライスとは何ですか?

IE8 の新機能 Web スライス (Web スライス) Microsoft は 3 月 20 日...

HTML テーブルタグチュートリアル (46): テーブルフッタータグ

<tfoot> タグは、テーブル フッターのスタイルを定義するために使用されます。基本構...

小さなページングデザイン

ユーザーが目的のものを探すために前進するか後退するかを選択できるようにします。たとえば、Taobao...

JavaScript配列の一般的なメソッドの例のまとめ

目次一般的な配列メソッドconcat() メソッドjoin() メソッドpop() メソッドpush...

Vueタイマーの実装方法

この記事では、参考までにタイマーを実装するためのVueの具体的なコードを紹介します。具体的な内容は次...

MySQL が UNION を使用して 2 つのクエリを接続できない理由の詳細な説明

概要連合接続データセットキーワードは、2つのクエリ結果セットを1つに連結し、同一のレコードを除外する...