vue恢復初始數(shù)據(jù)this.$data,this.$options.data()解析
vue恢復初始數(shù)據(jù)this.$data,this.$options.data()
vue恢復初始數(shù)據(jù)
在vue開放中我們會遇到一個頁面或者一個彈窗讓他恢復到原始數(shù)據(jù)的情況,如果數(shù)據(jù)不多我們可以重設賦值一下,但數(shù)據(jù)較多的情況下會比較麻煩,這時候可以用到
this.$data,this.$options
this.$options.data()這個是vue原始的數(shù)據(jù),就是你頁面剛加載時的datathis.$data這個是現(xiàn)在階段的vue數(shù)據(jù),就是你改變data的數(shù)據(jù)
下面是一個彈窗的數(shù)據(jù),在彈窗關(guān)閉時恢復數(shù)據(jù),這里使用Object.assign將原始數(shù)據(jù)和現(xiàn)在的數(shù)據(jù)融合,會將改變的數(shù)據(jù)重置到初始狀態(tài)
watch: {
? ? ShowModal(val) {
? ? ? if (!val) {
? ? ? ? Object.assign(this.$data, this.$options.data())
? ? ? }
? ? }
? }如果只想讓一個數(shù)據(jù)恢復到以前
this.base = this.$options.data().base
this.$options.data()和this.$data你知多少
場所描述
- 如何獲取vue-data中的所有值?
- 如何獲取vue-data中的某一個值?
- 如何獲取vue-data中的初始值?
- 如何設置data中的值位初始值?
主角登場
this.options.data() 和 this.data
<template>
? ? <div>
? ? ? ? <button @click="gotos">改變</button>
? ? ? ? <button @click="obtain">獲取改變后的值</button>
? ? ? ? <button @click="inithander">獲取初始狀態(tài)下的值</button>
? ? ? ? <button @click="reset">重置</button>
? ? </div>
</template>
<script>
export default {
? ? data(){
? ? ? ? return{
? ? ? ? ? ? // https://www.jianshu.com/p/05697682a46f
? ? ? ? ? ? obj:{
? ? ? ? ? ? ? ? name:'張三',
? ? ? ? ? ? ? ? age:'李四',
? ? ? ? ? ? ? ? sex:'男'
? ? ? ? ? ? },
? ? ? ? ? ? subjective:{
? ? ? ? ? ? ? ? info:'ok'
? ? ? ? ? ? }
? ? ? ? }
? ? },
? ? methods:{
? ? ? ? gotos(){
? ? ? ? ? ? this.obj.sex='我改變了性別'
? ? ? ? },
? ? ? ? //獲取vue中data中的所有值 當然data中的值也有可能是被改變了的
? ? ? ? obtain(){
? ? ? ? ? ? console.log('vue中data中的所有值',this.$data);
? ? ? ? },
? ? ? ? // 獲取組件下初始狀態(tài)下的值;就是你在data中最初寫的值
? ? ? ? inithander(){
? ? ? ? ? ? console.log('初始狀態(tài)下的值',this.$options.data());
? ? ? ? },
? ? ? ? // 重置值
? ? ? ? reset(){
? ? ? ? ? ? Object.assign(this.$data.obj,{name:'',age:'', sex:''});
? ? ? ? ? ? // 還可以使用 ? Object.assign(this.$data.obj,this.$options.data().obj); //前提是obj的值是空
? ? ? ? ? ? console.log('重置', this.obj )
? ? ? ? }
? ? }
}
</script>
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
VsCode工具開發(fā)vue項目必裝插件清單(推薦!)
對于很多使用vscode編寫vue項目的新手同學來說,可能不知道使用什么插件,下面這篇文章主要給大家介紹了關(guān)于VsCode工具開發(fā)vue項目必裝插件的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-09-09
解決element-ui?el-drawer抽屜el-dialog彈框關(guān)閉優(yōu)化demo
這篇文章主要為大家介紹了解決element-ui?el-drawer抽屜el-dialog彈框關(guān)閉優(yōu)化demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>2023-06-06
vue+element開發(fā)使用el-select不能回顯的處理方案
這篇文章主要介紹了vue+element開發(fā)使用el-select不能回顯的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
vue3+element-plus動態(tài)路由菜單示例代碼
這篇文章主要介紹了vue3+element-plus動態(tài)路由菜單示例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-11-11
vite+vue3項目報錯:TypeError:?Promise.allSettled?is?not?a?fu
Vite+Vue3項目中遇到“TypeError:?Promise.allSettled?is?not?a?function”錯誤,通常是因為當前運行的JavaScript環(huán)境不支持Promise.allSettled,下面就來介紹幾種解決方法,感興趣的可以了解一下2024-12-12
vue打包上傳服務器加載提示錯誤Loading chunk {n} failed
這篇文章主要為大家介紹了vue打包上傳服務器加載提示錯誤Loading chunk {n} failed解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
elementUI Table組件實現(xiàn)表頭吸頂效果(示例代碼)
文章介紹了如何在vue2.6+和elementUI環(huán)境下實現(xiàn)el-table組件的表頭吸頂效果,通過添加樣式、注冊指令、引入指令并在父元素中避免使用overflow:hidden,可以實現(xiàn)場景下表頭始終可見,本文通過實例代碼介紹的非常詳細,感興趣的朋友一起看看吧2025-01-01

