vue恢復(fù)初始數(shù)據(jù)this.$data,this.$options.data()解析
vue恢復(fù)初始數(shù)據(jù)this.$data,this.$options.data()
vue恢復(fù)初始數(shù)據(jù)
在vue開放中我們會(huì)遇到一個(gè)頁面或者一個(gè)彈窗讓他恢復(fù)到原始數(shù)據(jù)的情況,如果數(shù)據(jù)不多我們可以重設(shè)賦值一下,但數(shù)據(jù)較多的情況下會(huì)比較麻煩,這時(shí)候可以用到
this.$data,this.$options
this.$options.data()這個(gè)是vue原始的數(shù)據(jù),就是你頁面剛加載時(shí)的datathis.$data這個(gè)是現(xiàn)在階段的vue數(shù)據(jù),就是你改變data的數(shù)據(jù)
下面是一個(gè)彈窗的數(shù)據(jù),在彈窗關(guān)閉時(shí)恢復(fù)數(shù)據(jù),這里使用Object.assign將原始數(shù)據(jù)和現(xiàn)在的數(shù)據(jù)融合,會(huì)將改變的數(shù)據(jù)重置到初始狀態(tài)
watch: {
? ? ShowModal(val) {
? ? ? if (!val) {
? ? ? ? Object.assign(this.$data, this.$options.data())
? ? ? }
? ? }
? }如果只想讓一個(gè)數(shù)據(jù)恢復(fù)到以前
this.base = this.$options.data().base
this.$options.data()和this.$data你知多少
場(chǎng)所描述
- 如何獲取vue-data中的所有值?
- 如何獲取vue-data中的某一個(gè)值?
- 如何獲取vue-data中的初始值?
- 如何設(shè)置data中的值位初始值?
主角登場(chǎng)
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中的所有值 當(dāng)然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>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue2中vue.config.js簡(jiǎn)單配置代理跨域的方法
在前后端的開發(fā)中總是難免會(huì)遇到前后端的跨域問題,下面這篇文章主要給大家介紹了關(guān)于vue2中vue.config.js簡(jiǎn)單配置代理跨域的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
VsCode工具開發(fā)vue項(xiàng)目必裝插件清單(推薦!)
對(duì)于很多使用vscode編寫vue項(xiàng)目的新手同學(xué)來說,可能不知道使用什么插件,下面這篇文章主要給大家介紹了關(guān)于VsCode工具開發(fā)vue項(xiàng)目必裝插件的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下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,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-06-06
vue項(xiàng)目打包優(yōu)化方式(讓打包的js文件變小)
這篇文章主要介紹了vue項(xiàng)目打包優(yōu)化方式(讓打包的js文件變小),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
vue+element開發(fā)使用el-select不能回顯的處理方案
這篇文章主要介紹了vue+element開發(fā)使用el-select不能回顯的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
vue3+element-plus動(dòng)態(tài)路由菜單示例代碼
這篇文章主要介紹了vue3+element-plus動(dòng)態(tài)路由菜單示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-11-11
vite+vue3項(xiàng)目報(bào)錯(cuò):TypeError:?Promise.allSettled?is?not?a?fu
Vite+Vue3項(xiàng)目中遇到“TypeError:?Promise.allSettled?is?not?a?function”錯(cuò)誤,通常是因?yàn)楫?dāng)前運(yùn)行的JavaScript環(huán)境不支持Promise.allSettled,下面就來介紹幾種解決方法,感興趣的可以了解一下2024-12-12
vue打包上傳服務(wù)器加載提示錯(cuò)誤Loading chunk {n} failed
這篇文章主要為大家介紹了vue打包上傳服務(wù)器加載提示錯(cuò)誤Loading chunk {n} failed解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
elementUI Table組件實(shí)現(xiàn)表頭吸頂效果(示例代碼)
文章介紹了如何在vue2.6+和elementUI環(huán)境下實(shí)現(xiàn)el-table組件的表頭吸頂效果,通過添加樣式、注冊(cè)指令、引入指令并在父元素中避免使用overflow:hidden,可以實(shí)現(xiàn)場(chǎng)景下表頭始終可見,本文通過實(shí)例代碼介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-01-01

