vue如何重置data的所有屬性
重置data的所有屬性
1.拿到data原始屬性
this.$options.data()
2.拿到當(dāng)前的data
this.$data
3.復(fù)制到當(dāng)前$data里面
Object.assign(this.$data, this.$options.data());
重置當(dāng)前頁面的data
問題一
在某些情況下,需要重新使用data中的數(shù)據(jù),但是data中的數(shù)據(jù)已經(jīng)被各種表單、變量等賦值,那么怎么重置data的值呢?
解決方式:Object.assign()
JS相關(guān)函數(shù)
| 函數(shù) | 含義 |
|---|---|
| Object.assign(target, …sources) | 將所有可枚舉屬性值從一個或多個源對象復(fù)制到目標(biāo)對象 |
vue中相關(guān)函數(shù)
| 函數(shù) | 含義 |
|---|---|
| this.$data | 當(dāng)前狀態(tài)下的data |
| this.$options.data() | 該組件初始狀態(tài)下的data |
所以,可以通過下面的方式重置當(dāng)前頁面的data:
Object.assign(this.$data, this.$options.data.call(this));
或者,單獨重置data中的某一個對象或者屬性:
this.form = this.$options.data().form
問題二
用 this.$options.data() 重置組件data時,data() 里用this獲取的props或methods都為undefined
原因
new Vue的時候傳了一個對象,把該對象記為options,Vue將options中自定義的屬性和Vue構(gòu)造函數(shù)中定義的屬性合并為vm.options,vm.options.data()中的this指向vm.options ,而methodA和B并沒有直接掛在vm.options下,所以this.methodA和this.B為undefined。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue手機(jī)端input change時,無法執(zhí)行的問題及解決
這篇文章主要介紹了vue手機(jī)端input change時,無法執(zhí)行的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
vue執(zhí)行配置選項npm?run?serve的本質(zhì)圖文詳解
本地開發(fā)一般通過執(zhí)行npm run serve命令來啟動項目,那這行命令到底存在什么魔法?下面這篇文章主要給大家介紹了關(guān)于vue執(zhí)行配置選項npm?run?serve的本質(zhì)的相關(guān)資料,需要的朋友可以參考下2023-05-05

