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

推薦する

JavaScriptは組み込みオブジェクトのプロトタイプメソッド実装を追加します

オブジェクトがメソッドを呼び出す順序:インスタンス内にメソッドが存在しない場合は、インスタンス オブ...

Pagoda Panel のインストール時にサーバーがデータベースにリモート接続できない問題の解決策

自分のウェブサイトを構築する予定なので、618 プロモーションを利用して Tencent Cloud...

mysql ルートユーザーを認証できず、Navicat リモート認証プロンプト 1044 の問題を解決します

まず解決策を見てみましょう #------------mysql の root ユーザーに権限を付与...

IE で UTF8 エンコードされたページで行が理由もなく空白のままになり、UTF8 ページが表示されない問題の解決方法

理由は、すべてのファイルが utf8 でエンコードされているためです。ファイルがインクルードされると...

Vue開発の詳細な説明 ソートコンポーネントコード

目次 <テンプレート> <ul class="コンテナ">...

CSS3セレクターの新機能の実装

目次基本的なセレクタ拡張属性セレクタ疑似クラスと疑似要素セレクター基本的なセレクタ拡張1. 子要素セ...

mysql5.7.19 解凍版の詳細なインストール チュートリアル (純粋なクラックされた中国語版 SQLYog を使用)

Mysql5.7.19バージョンは今年リリースされた新しいバージョンです。最近のMySQLのバージ...

この記事では、CSSの2列レイアウトと3列レイアウトの具体的な使い方をまとめます。

序文大規模なフロントエンドの開発に伴い、UI フレームワークが次々と登場し、フロントエンド開発におけ...

JavaScript を使用して文字列内の最も繰り返しの多い文字を取得する方法

目次トピック分析する使用目的解決:コードは次のように実装されます。分析:配列とポインタ解決:コードは...

mysqldump を使用した MySql のインポートおよびエクスポート方法の概要

データベースデータをエクスポートします:まずcmdを開いてMySQLのbinフォルダに入ります1. ...

Xftp のダウンロードとインストールのチュートリアル (グラフィック チュートリアル)

Windows と Linux 間でファイルを転送する場合は、Xftp ツールを使用できます。この...

VMware仮想マシンにdeepin20をインストールする最も完全で詳細なプロセス

仮想マシンソフトウェア: VMware Workstationイメージ: deepin-deskto...

Docker で Elasticsearch Kibana と ik Word Segender をデプロイする詳細な説明

esインストール docker pull elasticsearch:7.4.0 # -d : バッ...

CSS3は、ズームと回転を実現するためにscale()とrotate()を使用します。

1. scale() メソッドズームとは「縮小」と「拡大」を意味します。 CSS3 では、scal...

NodeJSのモジュール性に関する詳細な説明

目次1. はじめに2. 本文2.1 モジュールとは何ですか? 2.2 解決2.3、require.r...