Vueはデータを初期状態にリセットします

Vueはデータを初期状態にリセットします

場合によっては、データ内のデータを再利用する必要がありますが、データ内のデータはさまざまなフォーム、変数などに割り当てられているため、データの値をリセットするにはどうすればよいでしょうか。

1. 値を一つずつ割り当てる

...
データ() {
 戻る {
 名前: ''、
 性別: ''、
 説明: ''
 }
}
...
// 値を一つずつ割り当てる this.name = ''
this.sex = ''
this.desc = ''

この方法は不器用で、もちろん目的の効果は達成できますが、値を一つずつ再割り当てするのは面倒で、コードが乱雑に見えてしまいます。

次の方法は間違いなくあなたが好きなもので、1行のコードで完了します〜

2. Object.assign() を使用する

このメソッドの MDN 紹介: Object.assign() メソッドは、1 つ以上のソース オブジェクトからターゲット オブジェクトにすべての列挙可能なプロパティの値をコピーするために使用されます。対象オブジェクトを返します。

使用法: Object.assign(target, ...sources)

最初のパラメーターはターゲット オブジェクトであり、2 番目のパラメーターはソース オブジェクトです。つまり、ソース オブジェクトのプロパティをターゲット オブジェクトにコピーし、ターゲット オブジェクトを返します。

これは、あるオブジェクトのプロパティを別のオブジェクトにコピーすることです。

Vueの場合:

this.$dataは現在の状態のデータを取得します

this.$options.data() コンポーネントの初期状態のデータを取得します

したがって、リセット効果を実現するために、初期状態のデータを現在の状態のデータにコピーすることができます。

オブジェクトを割り当てます(this.$data、this.$options.data())

もちろん、データ内の特定のオブジェクトまたは属性のみをリセットしたい場合は、次のようにします。

this.form = this.$options.data().form

拡張機能

Object.assign(target, ...sources) メソッドを使用してオブジェクトをマージすることもできます。

定数 o1 = {a: 1};
定数o2 = { b: 2 };
定数o3 = { c: 3 };
obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1、b: 2、c: 3 }
console.log(o1); // { a: 1, b: 2, c: 3 }, ターゲットオブジェクト自体も変更されることに注意してください。

オブジェクトに同じ属性が含まれている場合は、最後の属性を取得します。

定数o1 = {a: 1、b: 1、c: 1 };
定数o2 = { b: 2, c: 2 };
定数o3 = { c: 3 };
obj = Object.assign({}, o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 } プロパティは最後のオブジェクトのプロパティを取得します

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • 初期化データを復元するためのvueデータの実装方法
  • Vueはデータを初期状態に復元し、コンポーネントインスタンスを再レンダリングします。
  • Vue の計算プロパティとデータ取得方法
  • Vueでデータを初期化する方法

<<:  Squid を使用して http および https 用のプロキシ サーバーを構築する方法

>>:  MySql の忘れたパスワードの変更方法はバージョン 5.7 以上に適しています

推薦する

Nginx転送マッチングルールの実装

1. 正規表現マッチング大文字と小文字を区別するマッチングの場合 ~ ~*は大文字と小文字を区別しな...

mysql mycat ミドルウェアのインストールと使用

1. mycatとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベ...

仮想マシンの複製に関するVirtual Boxチュートリアル図

VMに慣れた後、BOXに切り替えるのは少し異なります。たとえば、コピーネットワークカードを2枚使って...

ウェブデザインにおける2種類のタブアプリケーション

現在、Web デザインではタブが広く使用されていますが、一般的に次の 2 つのタイプに分けられます。...

CSSのマッチング問題を解決する

問題の説明ご存知のとおり、CSS を記述する場合、HTML のクラスの定義または ID の定義に従っ...

MySQL のテーブルリターンとインデックスカバレッジの例の詳細な説明

目次インデックスタイプインデックス構造非クラスター化インデックスクエリインデックスカバー要約するイン...

MySQL テーブルの読み取り、書き込み、インデックス作成、その他の操作の SQL ステートメントの効率最適化の問題を分析します。

前回は、Explain 実行プランの表示、インデックスの分析など、MySQL での SQL クエリの...

包括的なウェブサイト評価ソリューション

<br />「XXXのウェブサイトを見てみませんか?」といった質問をされることもあります...

MySQLで関連テーブルを削除する実用的な方法

MySQL データベースでは、テーブルが互いに関連付けられた後は、それらを任意に削除することはできま...

JavaScript 関数をよりエレガントにする方法

目次分割代入を使用したオブジェクトパラメータコールバック関数の命名条件文を説明的にするスイッチ文をM...

div の特定の実装は自動的に折り返されず、HTML で折り返されないよう強制されます。

1. 改行なしを実現するには<nobr>タグを使用するコードをコピーコードは次のとおりで...

Dockerでk8sをデプロイする方法

K8s k8s はクラスターです。クラスターには複数の名前空間があります。名前空間の下には複数のポッ...

配列をフィルタリングするJavaScript

この記事では、配列フィルタリングを実装するためのJavaScriptの具体的なコードを参考までに紹介...

Vuex全体のケースの詳細な説明

目次1. はじめに2. 利点3. 使用手順1. Vuexをインストールする2. Vuexを参照する3...

js Promise同時制御メソッド

目次質問背景アイデアと実装質問次のように、同時実行 Promise の数を制御するメソッドを記述する...