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

推薦する

HTML テーブルタグと関連する改行の問題の詳細な分析

テーブルとは何ですか?テーブルは、データのキャリアである HTML テーブルです。以下は比較的標準的...

VMWare ネットワーク アダプタの 3 つのモードの実装プロセスの分析

3つのモードブリッジ(ブリッジ モード)、NAT(ネットワーク アドレス変換モード)、ホストオンリー...

Centos 6.9 に MySQL をインストールするための詳細なチュートリアル

1. MySQLがインストールされているかどうかを確認します。次のコードで確認できます。 [root...

Vue は携帯電話の認証コードによるログインを実装します

この記事では、携帯電話認証コードログインを実装するためのVueの具体的なコードを参考までに共有します...

HTML のタイトル、段落、改行、水平線、特殊文字についての簡単な説明

タイトルXML/HTML コードコンテンツをクリップボードにコピー< h1 >第 1 レ...

eCharts でパーセンテージ付きの横棒グラフを実装する方法

目次サンプルコードレンダリングコード分​​析要約するサンプルコード var データ = [220, ...

Tomcat のパフォーマンス最適化方法の簡単な概要

Tomcat自体の最適化Tomcat メモリ最適化起動時に大きなメモリ ブロックが必要であることを ...

Centos7 での python3 のインストールとアンインストールに関するチュートリアル

1. Python 3をインストールする1. 依存パッケージをインストールしますyum instal...

Docker Swarmを使用してWordPressを構築する方法

原因かつて私は Vultr に WordPress を設定しましたが、よく知られている理由により、こ...

Windows Server 2008 64ビット MySQL5.6 インストール不要版 設定方法図

1 公式ウェブサイトから MySQL 5.6 バージョンの圧縮パッケージmysql-5.6.36-w...

Docker を使用した war パッケージ プロジェクトのデプロイの実装

Docker で war をデプロイするには、コンテナを使用する必要があります。ここでは tomca...

Dockerでnginxをデプロイし、設定ファイルを変更する方法

Dockerでnginxをデプロイするのはとても簡単ですたった 1 行のコマンド: docker 実...

キャンバス操作プラグイン fabric.js の使い方を詳しく解説

Fabric.js は非常に便利なキャンバス操作プラグインです。ここでは、日常のプロジェクトで使用さ...

CSS で雨滴アニメーション効果を実装するサンプルコード

ガラス窓今日実現するのは雨滴効果です。ただし、雨滴効果を実現する前に、まずは曇りガラス効果を作成しま...

Win10 での MySQL 8.0 ログインでユーザー 'root'@'localhost' のアクセスが拒否される (パスワード使用: YES) 問題の解決方法

最近、MySQL を学び始めました。インストールはスムーズに進み、インターネット上の既成のチュートリ...