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 以上に適しています

推薦する

js でショッピングモールのシミュレーションを実現

HTML、CSS、JSフロントエンドを学習中の皆さん、今回はショッピングモールの事例の実装をシェアし...

JavaScript データ型変換の例 (他の型を文字列、数値型、ブール型に変換する)

序文データ型変換とは何ですか?フォームまたはプロンプトを使用して取得されるデフォルトのデータ型は文字...

Docker での Redis 接続の急増をトラブルシューティングした実践的な記録

土曜日、本番サーバー上の Redis サーバーが利用できなくなり、エラー メッセージは次のようになり...

Angular の 12 の典型的な問題について簡単に説明します

目次1. Angular 2 アプリケーションのライフサイクル フックとは何ですか? 2. Angu...

MySql のインデックス、ロック、トランザクションの知識ポイントのまとめ

この記事では、MySql のインデックス、ロック、トランザクションに関する知識のポイントをまとめてい...

数千万のMySQLデータ量を素早くページ分割する方法

序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク IO のオーバーヘッドが...

純粋なテキストとアイコン付きのボタンを実現するための HTML+CSS

この記事では、いくつかの基本的なページ要素の実装方法をまとめており、後で更新される予定です。まず、私...

MySQL 8.0.11 の新機能の紹介

MySQL 8.0 for Windows v8.0.11 公式無料バージョン 64 ビット1. デ...

CentOS サーバーに FFmpeg をインストールするための完全な手順

序文サーバーシステム環境は、CentOS 6.5 (最終) です。 FFmpeg をサーバーに正常に...

Python 仮想環境のインストールとアンインストールの方法と発生する問題

Ubuntu16.04 のインストールとアンインストール pip実験環境Ubuntu 16.04; ...

JavaScriptとTypeScriptの関係

目次1. JavaScript とは何ですか? 2. JavaScript は何に使用されますか? ...

Linux 上のカラフルな猫

Linux システムを使用したことがある友人なら、 catコマンドを使用したことがあるはずです。もち...

iframe に関するいくつかの発見と考察

この物語は、今日の予期せぬ発見から始まります。同社には複数のウェブサイトがある。友達リンクにはお互い...

読み取り専用と無効の違い

要約すると: Readonly は入力 (テキスト/パスワード) とテキスト領域に対してのみ有効です...

CSS コード省略 div+css レイアウト コード省略仕様

略語を使用すると、CSS ファイルのサイズが小さくなり、読みやすくなります。 CSS 省略形の主なル...