Vue.js の watch メソッドと computed メソッドの違いの詳細な例

Vue.js の watch メソッドと computed メソッドの違いの詳細な例

序文

この記事では主に、Vueにおけるwatchとcomputerの違いと、その方法について簡単に説明します。

まずは、これらの違いについてお話しましょう。もちろん見た目も違いますよ~~~、

ハハハハ、冗談はもうやめて、本題に入りましょう。

導入

メソッド: オブジェクトにマウントされる関数。通常は Vue インスタンス自体または Vue コンポーネントです。

computer: プロパティはメソッドのように見えますが、そうではありません。Vue では通常、機能プロパティの変更を追跡するためにデータを使用します。計算プロパティを使用すると、データと同じように機能するプロパティを定義できますが、依存関係に基づいてカスタム ロジックを設定することもできます。計算されたプロパティをデータの別のビューとして考えることができます。

視聴: これらにより、Reactivity System を理解できます。 Vue ストアのプロパティを監視するためのフックをいくつか提供します。変更が発生するたびに何らかの機能を追加したり、特定の変更に応答したりしたい場合は、プロパティを監視して何らかのロジックを適用できます。つまり、観察者の名前は観察対象と一致している必要があります。

これらの数文だけでは、3 つの違いを説明することはできません。例を見てみましょう。

1. 作用機序

computed\watch:watch と computed は、Vue の依存関係追跡メカニズムに基づいています。どちらも、特定のデータ (依存データと呼ばれる) が変更されると、このデータに依存するすべての「関連」データが「自動的に」変更される、つまり、データの変更を実現するために関連する関数が自動的に呼び出される、という処理を試みます。

メソッド: メソッドは関数を定義するために使用されます。当然ですが、実行するには手動で呼び出す必要があります。 watch や computed とは異なり、事前定義された関数を「自動的に実行」しません。

[概要]: メソッドで定義された関数は積極的に呼び出す必要がありますが、watch および computed に関連する関数は、目的を達成するために自動的に呼び出されます。

2. 自然から

1. 関数はメソッド内で定義されており、明らかに「fuc()」のように呼び出す必要があります (関数が fuc であると仮定)。

2. computed は計算された属性であり、実際にはデータ オブジェクト内のデータ属性と同じ型です (使用法の観点から)

例えば:

計算:{
   fullName: 関数 () { return this.firstName + lastName }
} 

アクセスするときは、データにアクセスするときと同じように this.fullName を使用してアクセスします (関数として呼び出さないでください!!)

3. 監視: 監視メカニズム + イベントメカニズムに類似

例えば:

時計:
   firstName: 関数 (val) { this.fullName = val + this.lastName }
}

firstName の変更は、この特別な「イベント」をトリガーするための条件であり、firstName に対応する関数は、イベント発生後に実行されるメソッドと同等です。

3. 時計と計算の比較

時計計算された
1つのデータが複数のデータに影響を与える1つのデータが複数のデータの影響を受ける
blockchainblockchain

ウォッチ計算1 つのデータが複数のデータに影響する1 つのデータが複数のデータに影響される

4. メソッドはデータロジックの関係を処理せず、呼び出し可能な関数のみを提供する

watch/computed と比較すると、メソッドはデータ ロジックの関係を処理せず、呼び出し可能な関数のみを提供します。

新しいVue({
  el: '#app',
  テンプレート: '<div><p>{{ say() }}</p></div>',
  メソッド: {
    言う: 関数() {
      「外国で元気にやっています」と返す
    }
  }
})

5. 機能的補完性の観点から方法、監視、計算の関係を見る

多くの場合、computed は、watch やメソッドを使用するときには処理できない状況、または適切に処理されない状況を処理するために使用されます。computed は、メソッド内での繰り返し計算を処理するために使用します。

1. メソッド内の関数は、単なる「正直者」の集まりです。別の親関数がそれを呼び出すと、その結果が同じになる可能性があり、不必要である場合でも、毎回「従順に」実行され、結果が返されます。

2. Computed は「陰謀を企む少年」です。これは、Vue が提供する依存関係追跡システムに基づいています。依存データが変更されない限り、computed は再計算しません。

6. 特定の状況下でのウォッチのコード冗長性の現象を処理し、コードを簡素化するためにcomputedを使用する

要約する

計算された

  1. 計算プロパティの値はデフォルトでキャッシュされます。計算プロパティは、レスポンシブな依存関係に基づいてキャッシュされます。つまり、データで宣言されたデータに基づいて計算されます。
  2. 属性が他の属性から計算される場合、この属性は他の属性に依存し、多対1または1対1であり、通常は計算値を使用します。
  3. 計算プロパティの属性値が関数の場合、デフォルトで get メソッドが使用されます。関数の戻り値はプロパティの属性値です。計算プロパティには get メソッドと set メソッドがあり、データが変更されると set メソッドが呼び出されます。
  4. 計算プロパティは依存関係に基づいてキャッシュされた計算であり、必要な場合にのみ更新されます。

時計

監視機能は 2 つのパラメータを受け取ります。最初のパラメータは最新の値、2 番目のパラメータは入力前の値です。

計算された見る(リスニングプロパティ)
キャッシュをサポートし、依存データが変更されたときにのみ再計算が実行されます。キャッシュをサポートしていないため、データの変更によって対応する操作が直接トリガーされます。
非同期をサポートしていません。計算に非同期操作がある場合は無効であり、データの変更を監視できません。ウォッチは非同期操作をサポートします。

さて、vue.js の watch メソッドと computed メソッドの違いについての記事はこれで終わりです。vue の watch メソッドと computed メソッドの違いについてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue3.0 のウォッチ リスナーの例の詳細な説明
  • Vue2 と Vue3 でウォッチ リスナーを使用する方法
  • Vue の watch と computed の詳細な説明
  • Vuejs のウォッチインスタンス (リスナー) の詳細な説明
  • Vue の watch における、immediate と watch の意味の詳細な説明
  • Vue 2.0 リスナーウォッチ属性コードの詳細な説明
  • VUEウォッチリスナーの基本的な使い方の詳しい説明

<<:  Linux gccコマンドの具体的な使い方

>>:  ローカルの Windows リモート デスクトップから Alibaba Cloud Ubuntu 16.04 サーバーに接続する方法

推薦する

JS のあらゆる場所で絶対等価演算子の使用をやめる

目次概要1. NULL値のテスト2. ユーザー入力を読み取る導入事実の根源はどこにあるのでしょうか?...

MySQLデータベースのリアルタイムバックアップの知識ポイントを詳しく解説

序文リアルタイムのデータベース バックアップの必要性は非常に一般的です。MySQL 自体はレプリケー...

MySQL 完全折りたたみクエリ正規マッチングの詳細な説明

概要前の章では、クエリのフィルター条件について学習しました。MySQL では、like % ワイルド...

CentOS 上の Docker に Jupyter をインストールしてポートを開く方法

目次jupyterをインストールするDocker ポートマッピングjupyterをインストールするp...

Win10 に Tomcat サーバーをインストールし、環境変数を構成する詳細なチュートリアル (画像とテキスト)

目次JDKをダウンロードしてインストールするTomcat 圧縮パッケージをダウンロードTomcatの...

MySQL5.7.21 解凍版インストール詳細チュートリアル図

私は頻繁にシステムをインストールするので、インストールのたびにいくつかのソフトウェアを再インストール...

Vue3 テーブルコンポーネントの使用

目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...

WindowsにOpenSSHをインストールし、SSHキーを生成してLinuxサーバーにログインします。

SSH の正式名称は Secure SHell です。 SSH を使用すると、送信されるすべてのデ...

js でクラスセレクターと名前属性セレクターを実装する手順の例

jQuery の登場により、DOM の操作効率が大幅に向上し、開発がより高いレベルに引き上げられまし...

Zabbixは複数のmysqlプロセスの監視を実装します

1 つのサーバー上で 3 つの MySQL インスタンス プロセスが開始され、それぞれ異なるポート ...

JSを使用して画像を効果的に圧縮する方法

目次序文変換関係具体的な実装file2DataUrl(ファイル、コールバック) file2Image...

dockerでlnmp環境を構築する方法

プロジェクトディレクトリを作成する php ディレクトリをコピーする次のプロジェクト構造を作成します...

Vueは、選択した月に応じて日付に対応する曜日を動的に表示します。

私たち謙虚なプログラマーは、今でもこう歌わなければなりません。「あなたも私も、この世に生まれて、一日...

Linux の cut コマンドの説明

Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力す...

Chrome デベロッパー ツールの詳細な紹介 - タイムライン

1. 概要ユーザーは、アクセスする Web アプリケーションがインタラクティブでスムーズに実行される...