Vue で配列をクリアするいくつかの方法 (要約)

Vue で配列をクリアするいくつかの方法 (要約)

1. はじめに

数日前、仕事中に問題に遭遇しました。vue3 で reactive を使用して生成されたレスポンシブ配列をクリアするにはどうすればよいでしょうか? もちろん、通常は次のようにクリアします。

  配列を[1,2,3]とします。
  配列 = [];

ただし、この方法は、次のようなリアクティブ プロキシで使用する場合、まだ少し問題があります。

    配列をreactive([1,2,3])とします。
    watch(()=>[...配列],()=>{
      console.log(配列);
    },)
    配列 = リアクティブ([]);

明らかに、元の応答オブジェクトへの参照が失われるため、監視は直接失われます。

2. データを消去するいくつかの方法

もちろん、10 年のコーディング経験があり、何年も怠けてきた私としては、すぐにいくつかの解決策を思いつきました。

2.1 ref() の使用

ref を使用するのが最も簡単な方法です。

    定数配列 = ref([1,2,3]);

    ウォッチ(配列,()=>{
      console.log(配列.値);
    },)

    配列の値 = [];

2.2 スライスの使用

名前が示すように、slice は配列をスライスして新しい配列を返します。これは、Go 言語の slice に多少似ています。もちろん、React を使用したことがある友人は、slice をよく使用するはずです。配列をクリアするには、次のように記述するだけです。

    定数配列 = ref([1,2,3]);

    ウォッチ(配列,()=>{
      console.log(配列.値);
    },)

    配列の値 = 配列の値のスライス(0,0);

ただし、ref の使用には注意してください。

2.3 長さは0に割り当てられます

個人的には、長さを 0 に直接割り当てるこの方法を好みます。

    定数配列 = ref([1,2,3]);

    ウォッチ(配列,()=>{
      console.log(配列.値);
    },{
      深い:本当
    })

   配列の値の長さ = 0;

さらに、これは一度だけトリガーされますが、深く開くには時計に注意を払う必要があります。

ただし、この方法では、リアクティブを使用する方が便利であり、deep を有効にする必要はありません。

    定数配列 = リアクティブ([1,2,3]);

    watch(()=>[...配列],()=>{
      console.log(配列);
    })

    配列の長さ = 0;

2.4 スプライスの使用

副作用関数 splice も解決策の 1 つです。この場合、reactive も使用できます。

    定数配列 = リアクティブ([1,2,3]);

    watch(()=>[...配列],()=>{
      console.log(配列);
    },)

    配列.splice(0,配列.長さ)

ただし、ウォッチは複数回トリガーされることに注意してください。

もちろん、ref を使用することもできますが、この場合は deep をオンにする必要があることに注意してください。

    定数配列 = ref([1,2,3]);

    ウォッチ(配列,()=>{
      console.log(配列.値);
    },{
      深い:本当
    })

    配列の値の連結(0,配列の値の長さ)

しかし、ref も reactive と同様に複数回トリガーされていることがわかります。

3. 結論

これで、Vue で配列をクリアするいくつかの方法についての記事は終了です (要約)。Vue で配列をクリアする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • メンバーの追加や削除時に Vue オブジェクトをリアルタイムで更新できない問題の解決方法
  • Vue 入力 v-model クリア操作
  • Vueでオブジェクトをクリアする方法

<<:  nginx「504 ゲートウェイタイムアウト」エラーを解決する

>>:  CSS で隠し要素を実現する 7 つの興味深い方法

推薦する

関数の分類の詳細な説明とJavascriptでのこのポイントの例

JS で関数を定義する 3 つの方法例を挙げて説明しましょう。 <スクリプト> //メソ...

HTML で js を使用してローカル システム時間を取得する

コードをコピーコードは次のとおりです。 <div id="名前"> ...

CSS メニューボタンアニメーション

ドロップダウンメニューを書くには、ボタンをクリックします。メニューの入り口はアイコンボタンをクリック...

JS の querySelector メソッドと getElementById メソッドの違い

目次1. 概要1.1 querySelector() と querySelectorAll() の使...

jsはFileReaderを使用してローカルファイルまたはBLOBを読み取ります

目次FileReaderはローカルファイルまたはBLOBを読み取ります1. FileReaderの使...

Docker で MySQL サービスをデプロイする方法と、遭遇する落とし穴

最近、ポーターを学んでいます。こんなに強力なものがあったなんて、今まで知らなかった気がします。クラス...

SQLの最適化では間違いがよく起こります。それはMySQLのExplain Planの使い方を理解していないからです。

目次1. 準備2. 説明計画の概要3. フィールドの詳細な説明4. パーティションクエリにはパーティ...

Web デザインにおける Less と More について語る (写真)

Less is More は多くのデザイナーのキャッチフレーズです。これは建築界の巨匠ルートヴィヒ...

Ubuntu 18.04 のインストールで「ldlinux.c32 のロードに失敗しました」というエラーが表示され、解決手順がわかりません

序文私は Win7 を搭載した古いラップトップを持っています。古いシステムを維持しながら、同時に U...

grpc のリバース プロキシとして nginx を使用する場合の落とし穴の概要

背景ご存知のとおり、nginx は高性能な Web サーバーであり、負荷分散やリバース プロキシによ...

Linux でテキストを表示するためのヒント (非常に実用的!)

序文日常の開発では、サーバー上でさまざまなテキストやログの表示操作を実行する必要があることがよくあり...

Nodejs でタイムドクローラーを実装する完全な例

目次事件の原因Node Scheduleを使用してスケジュールされたタスクを実装する1. node-...

Vue3とTypeScriptを組み合わせたプロジェクト開発の実践記録

目次概要1. コンポジションAPI 1. ref と reactive の違いは何ですか? 2. 周...

jsでライトスイッチの効果を実現

この記事の例では、ライトスイッチ効果を実現するためのjsの具体的なコードを参考までに共有しています。...