查了下資料很多都是如下:
1. this.$options.data()
這個可以獲取原始的data值,this.$data
獲取當前狀態下的data,拷貝重新賦值一下就行了。
1 Object.assign(this.$data, this.$options.data());
2.下面寫個某個值的初始方法
1 // 重置data原有的資料(封裝) 2 export function resetData(vm, attr) { 3 // this.this.xyClassInfo=this.$options.data().xyClassInfo 4 vm[attr] = vm.$options.data()[attr] 5 }
1 import { resetData } from "@/utils/index"; 2 resetData(this, "search"); // 元件內呼叫 3 4 this.this.xyClassInfo=this.$options.data().xyClassInfo // 單獨使用
3. 參考大佬(原文點我)
初始化data物件中的某一個屬性
1 this.form = this.$options.data.call().form 2 // or 3 this.form = this.$options.data.call(this).form
值得注意的是
javascript 的call方法如果沒有傳遞第一個引數,this
的值將會被繫結為全域性物件。另外,在嚴格模式下,this
的值將會是 undefined
。從各方面來說,應當顯式的使用 .call(this)
的用法
延展
1 Object.assign(this.$data, this.$options.data()) // ❌ props將為undefined 2 3 Object.assign(this.$data, this.$options.data) // ❌ is function 4 5 this.form = this.$options.data.form // ❌ is undefined