某些时刻需要恢复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));