某些時刻需要恢復vue數據到初始狀態,但此時數據在程序運行過程中已經被修改,可以怎么做呢?
一、直接賦值(不推薦,若修改的地方多,冗余)
this.form = {要賦值的數據};
二、利用this.$options.data()獲得原始數據,再利用Object.assign()進行賦值。this.$options指vue實例的初始化選項,選項內容包含官方api的6個方面。
1、對vue實例的data全部回復初始狀態
Object.assign(this.$data,this.#options.data());
this.$data獲取當前狀態的data,也就是要改變的data數據
2、恢復data的某一項數據
Object.assign(this.$data.form,this.#options.data().form);
3、在data中用this獲取了props或者methods,此時this.#options.data()中的this指向變化,不能正確獲取vue實例的初始狀態,為undefined,此時應該使用
Object.assign(this.$data,this.$options.data.call(this));