vue3 watch と watchEffect の使い方と違い

vue3 watch と watchEffect の使い方と違い

1.リスナーを見る

時計のご紹介

'vue' から { ref, reactive, watch, toRefs } をインポートします。

基本的なデータの種類を監視する-----監視機能:

1. ある程度の遅延性があります。ページが初めて表示されたときには実行されず、データが変更されたときのみ実行されます。

2.パラメータは現在値と元の値を取得できる

3. 複数のデータの変更を監視し、1 つのリスナーを使用してそれらを伝達できます。

設定() {
	定数名 = ref('leilei')
	ウォッチ(名前、(現在の値、前の値) => {
 	console.log(現在の値、前の値)
 })
}
テンプレート: `名前: <input v-model="name" />`

参照型を聴く-----

設定() {
	const nameObj = reactive({name: 'leilei', englishName: 'bob'})
 データを監視します watch(() => nameObj.name, (curVal, prevVal) => {
 	console.log(現在の値、前の値)
 })
 複数のデータを監視する watch([() => nameObj.name, () => nameObj.name], ([curName, curEng], [prevName, curEng]) => {
 	console.log(curName, curEng, '----', 前の名前, curEng)
  タイムアウトを設定する(() => {
   ストップ1()
  }, 5000)
 })
 const { name, englishName } = toRefs(nameObj)
}
テンプレート: `名前: <input v-model="name" /> 英語名: <input v-model="englishName" />`

2.ウォッチエフェクト

過剰なパラメータはなく、コールバック関数は1つだけ

1. 遅延なくすぐに実行し、ページが最初に読み込まれたときに実行されます。

2. 内部コードを自動的に検出し、コードに依存関係がある場合はそれを実行します。

3. 聞くコンテンツを渡す必要はありません。コードの依存関係を自動的に感知します。多くのパラメータを渡す必要はありません。コールバック関数を渡すだけです。

4. 以前のデータの値を取得することはできません。現在の値のみを取得できます。

5. ここでは、一部 = 非同期操作の方が適切でしょう

ウォッチエフェクト(() => {
	console.log(名前オブジェクト名) 
})

リスナーをキャンセルする方法は、ウォッチ リスナーをキャンセルする方法と同じです。

const stop = watchEffect(() => {
	console.log(名前オブジェクト名) 
 タイムアウトを設定する(() => {
 	停止()
 }, 5000)
})

const stop1 = watch([() => nameObj.name, () => nameObj.name], ([curName, curEng], [prevName, curEng]) => {
 	console.log(curName, curEng, '----', 前の名前, curEng)
  タイムアウトを設定する(() => {
   ストップ1()
  }, 5000)
 })

3番目のパラメータimmediate: trueを追加することで、ウォッチを遅延のない即時実行に変更することもできます。

 watch([() => nameObj.name, () => nameObj.name], ([curName, curEng], [prevName, curEng]) => {
 	console.log(curName, curEng, '----', 前の名前, curEng)
  タイムアウトを設定する(() => {
   ストップ1()
  }, 5000)
 }, {
 	即時: 真
 })

上記は、vue3 watch と watchEffect の使い方と違いについての詳細な内容です。vue3 watch と watchEffect の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • VUE3 での watch と watchEffect の使い方の詳細な説明
  • Vue3 での watchEffect の使用に関する簡単な分析
  • vue3 の watch と watchEffect についてご存知ですか?
  • Vue3 における watchEffect の具体的な使用法についての簡単な説明
  • vue3 の watch と watchEffect の詳細な例

<<:  docker pullがリセットされる問題を解決する

>>:  Oracle10パーティションとMySQLパーティションの違いの詳細な説明

推薦する

Alibaba Cloudのセキュリティルール設定の詳細な説明

2日前、ダブル11ショッピングフェスティバルを利用して、Alibaba CloudでECS(サーバー...

本をめくる効果を実現するネイティブJS

この記事では、ネイティブ JS で実装された本をめくる効果の図を紹介します。効果は次のとおりです。 ...

ポータルサイト再設計のユーザーエクスペリエンス

<br />2006年10月12日のNetEaseの新ホームページの公開から、2008年...

テーブル切り替えのための JavaScript プラグインのカプセル化

この記事では、テーブル切り替えプラグインを実装するためのJavaScriptのカプセル化コードを参考...

Vue Nativeを使用したモバイルアプリケーションの構築プロセスの完全な記録

目次序文Vue Nativeの機能宣言的レンダリング双方向バインディングVue.js エコシステムの...

MySQL の遅いクエリ操作の例の分析 [有効化、テスト、確認など]

この記事では、MySQL のスロー クエリ操作について例を挙げて説明します。ご参考までに、詳細は以下...

前後の秒、分、時間、日数を取得するMySQLデータベース

現在の時刻を取得します: current_timestamp を選択します。出力: 2016-06-...

SMS送信のカウントダウンを実装するJavaScript

この記事では、SMS送信のカウントダウンを実装するためのJavaScriptの具体的なコードを参考ま...

MySQL マルチインスタンス インストール ブート自動起動サービス設定プロセス

1.MySQLの複数インスタンスMySQL マルチインスタンスとは、1 台以上のマシン上で複数の M...

Chrome タブバーを実装するための CSS のヒント

今回は、Google Chrome のタブバーのような、特殊な丸い角を持つナビゲーション バーのレイ...

PostgreSQL正規表現の一般的な機能の概要

PostgreSQL正規表現の一般的な機能の概要正規表現は、複雑なデータ処理を必要とするプログラムに...

Vue で className として空の文字列を使用することはなぜ推奨されないのですか?

目次空の文字列 '' と null を比較するケース1: 空の文字列を使用する &#...

Windows サーバー ポートを開きます (例としてポート 8080 を使用します)

ポートとは何ですか?私たちが通常参照するポートは、物理的な意味でのポートではなく、具体的には TCP...

VMware Workstation16 と Navicat リモート接続での Centos7 での MySQL8.0 インストール プロセス

目次1. CentOS7+MySQL8.0、yumソースインストール2. MySQLにログインしてパ...

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

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