Vue が配列の変更を監視できない問題の解決方法

Vue が配列の変更を監視できない問題の解決方法

1. Vueリスナー配列

Vueは実際に配列の変更を監視することができます。例えば、

データ () {
  戻る {
    ウォッチArr: [],
  };
},
watchArr (新しい値) {
  console.log('リスニング: ' + newVal);
},
作成された(){
  タイムアウトを設定する(() => {
    this.watchArr = [1, 2, 3];
  }, 1000);
},

たとえば、配列インデックス 0 から 2 つの要素を削除し、インデックス 0 に要素 3 を挿入するには、splice(0,2,3) を使用します。

データ () {
  戻る {
    ウォッチアラー: [1, 2, 3],
  };
},
watchArr (新しい値) {
  console.log('リスニング: ' + newVal);
},
作成された(){
  タイムアウトを設定する(() => {
    this.watchArr.splice(0, 2, 3);
  }, 1000);
},

プッシュ配列も監視できます。

2. vueが配列の変更を監視できない状況

ただし、次の2つの状況ではアレイを監視できません。

  • インデックスを使用して配列項目を直接設定する場合、たとえば、arr[indexofitem]=newValue
  • 配列の長さを変更する場合、例えば、arr.length = newLength

配列の変更を監視できない状況の例

1. インデックスを使用して配列の値を直接変更する

データ () {
  戻る {
    ウォッチArr: [{
      名前: 'krry',
    }],
  };
},
watchArr (新しい値) {
  console.log('リスニング: ' + newVal);
},
作成された(){
  タイムアウトを設定する(() => {
    this.watchArr[0].name = 'シャオユエ';
  }, 1000);
},

2. 配列の長さを変更する

  • 長さが元の配列より大きい場合、後続の要素は未定義に設定されます。
  • 長さが元の配列より短い場合、余分な要素は切り捨てられます。
データ () {
  戻る {
    ウォッチArr: [{
      名前: 'krry',
    }],
  };
},
ウォッチArr (新しい値) {
  console.log('リスニング: ' + newVal);
},
作成された(){
  タイムアウトを設定する(() => {
    this.watchArr.length = 5;
  }, 1000);
},

Vue が配列の変更を監視できないことに関するこの記事はこれで終わりです。Vue が配列の変更を監視できないことに関する関連コンテンツをさらにご覧になりたい場合は、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueの監視プロパティの詳細
  • VUEウォッチリスナーの基本的な使い方の詳しい説明
  • Vue がルート変更を監視するときに watch メソッドが複数回実行される理由と解決策
  • オブジェクトのプロパティ監視に関する Vue ウォッチ
  • Vueウォッチの監視方法の概要

<<:  CentOS8でのDockerの使い方の詳しい説明

>>:  大きなオフセットによる MySQL 制限ページングが遅い理由と最適化ソリューション

推薦する

MySQL データベースの基礎を始めるための一般的なコマンドの概要

この記事では、MySQL データベースの基礎を学ぶためによく使用されるコマンドを例を使って説明します...

JavaScript オブジェクト指向の実践の詳細説明: カプセル化とオブジェクトのドラッグ

目次概要1. DOM要素をアニメーション化する方法2. 現在のブラウザでサポートされている変換互換の...

ページの下部にHTMLフッターを配置する簡単な方法

要件:ページ コンテンツが短く、ブラウザーの高さをサポートできない場合でも、フッターをウィンドウの下...

js キャンバスはスライダー検証を実現します

この記事の例では、スライダー検証を実装するためのjsキャンバスの具体的なコードを参考までに共有してい...

Vite+ElectronでVUE3デスクトップアプリケーションを素早く構築

目次1. はじめに2. Viteプロジェクトを作成する1. viteをインストールする2. プロジェ...

Hadoop 2.Xの新機能、ごみ箱機能の説明

ごみ箱機能をオンにすると、削除されたファイルの元のデータをタイムアウトなしで復元できるため、誤って削...

CentOS7 システムでスワップを増やす方法の例

序文スワップは、ディスク上にある「仮想メモリ」の一部である特殊なファイル (またはパーティション) ...

Vueは買い物数量を変更できるショッピングカートを実装します

この記事では、Vueを使用してショッピングカートの数量を変更する方法を紹介します。具体的な内容は次の...

Dockerのプロセスとイメージを実行するための基本コマンドの詳細な説明

目次1. ワークフローを実行する2. ミラーリングの基本コマンド1. ワークフローを実行するDock...

HTML メタタグの使用の概要 (推奨)

メタタグ機能METAタグは、HTMLタグのHEAD領域にある重要なタグです。文書の文字セット、使用言...

MYSQL 文字関数を使用してデータをフィルタリングすることに関する質問

問題の説明:構造:テストには2つのフィールドがあります。これらは col1 と col2 で、どちら...

Tomcat Nginx Redis セッション共有プロセス図

1. 準備ミドルウェア: Tomcat、Redis、Nginx Jar パッケージ: commons...

カルーセル例の JS 実装

この記事では、カルーセルチャートの小さなケースを実装するためのJSの具体的なコードを参考までに共有し...

Reactコンポーネントのライフサイクルの詳細な説明

目次1.ライフサイクルとは何か2. 読み込みプロセス1.コンストラクタ2. レンダリング3. コンポ...

Windows (コミュニティ エディション) に MySQL 8.0.18 をインストールするためのチュートリアル

この記事では、Windows で MySQL をインストールする方法について簡単に説明します。他にご...