1. 程式人生 > 程式設計 >Vue 重置data的資料為初始狀態操作

Vue 重置data的資料為初始狀態操作

在某些情況下,需要重新使用da程式設計客棧ta中的資料,但是data中的資料已經被各種表單、變數等賦值,那麼怎麼重置data的值呢?

1. 逐個賦值

...
data() {
 return {
 name: '',sex: '',desc: ''
 }
}
...
// 逐個賦值
this.name = ''
this.sex = ''
this.desc = ''

這個方法比較笨,當然也可以實現效果,但是一個一個去重新賦值比較麻煩而且程式碼看起來也會比較亂。

下面這個方法肯定是你喜歡的,一行程式碼搞定~

2. 使用Object.assign()

MDN關於該方法的介紹:Object.assighttp://www.cppcns.com

n() 方法用於將所有可列舉屬性的值從一個或多個源物件複製到目標物件。它將返回目標物件。

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

第一個引數是目標物件,第二個引數是源物件,就是將源物件屬性複製到目標物件,返回目標物件

其中就是將一個物件的屬性copy到另一個物件

vue中:

this.$data 獲取當前狀態下的data

this.$options.data() 獲取該元件初始狀態下的data

所以,下面就可以將初始狀態的data複製到當前狀態的data,實現重置效果:

Object.assign(this.$data,this.$options.data())

當然,如果你只想重置data中的某一個物件或者屬性:

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

擴充套件

Object.assign(target,...sources) 方法還可以用來合併物件:

const o1 = { a: 1 };
cMFTdVonst o2 = { b: 2 };
const o3 = { c: 3 };
const obj = Object.assign(o1,o2,o3);
console.log(obj); // { a: 1,b: 2,c: 3 }
console.log(o1); // { a: 1,c: 3 },注意目標物件自身也會改變。

如果物件中含有相同屬性,取最後一個屬性:

const o1 = { a: 1,b: 1,c: 1 };
const o2 = { b: 2,c: 2 };
const o3 = { c: 3 };
const obj = Object.assign({},o1,c: 3 } 屬性取最後一程式設計客棧個物件的屬性

以上為個人經驗,希望能給大家一個參考,也程式設計客棧希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。