最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue使用assign巧妙重置data數(shù)據(jù)方式

 更新時(shí)間:2022年03月03日 11:15:33   作者:kaiking_g  
這篇文章主要介紹了vue使用assign巧妙重置data數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用assign巧妙重置data數(shù)據(jù)

由于Object.assign()有上述特性,所以我們在Vue中可以這樣使用: 

Vue組件可能會(huì)有這樣的需求

在某種情況下,需要重置Vue組件的data數(shù)據(jù)。此時(shí),我們可以通過this.$data獲取當(dāng)前狀態(tài)下的data,通過this.$options.data()獲取該組件初始狀態(tài)下的data。

然后只要使用Object.assign(this.$data, this.$options.data())就可以將當(dāng)前狀態(tài)的data重置為初始狀態(tài)

重置data的數(shù)據(jù)為初始狀態(tài)

1. 逐個(gè)賦值

<span style="color:#000000"><code class="language-js"><span style="color:#99cc99">...</span>
<span style="color:#6699cc">data</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
?? ?<span style="color:#cc99cc">return</span> <span style="color:#999999">{</span>
?? ??? ?name<span style="color:#999999">:</span> <span style="color:#99cc99">''</span><span style="color:#999999">,</span>
?? ??? ?sex<span style="color:#999999">:</span> <span style="color:#99cc99">''</span><span style="color:#999999">,</span>
?? ??? ?desc<span style="color:#999999">:</span> <span style="color:#99cc99">''</span>
?? ?<span style="color:#999999">}</span>
<span style="color:#999999">}</span>
<span style="color:#99cc99">...</span>
?
<span style="color:#999999">// 逐個(gè)賦值</span>
<span style="color:#cc99cc">this</span><span style="color:#999999">.</span>name <span style="color:#99cc99">=</span> <span style="color:#99cc99">''</span>
<span style="color:#cc99cc">this</span><span style="color:#999999">.</span>sex <span style="color:#99cc99">=</span> <span style="color:#99cc99">''</span>
<span style="color:#cc99cc">this</span><span style="color:#999999">.</span>desc <span style="color:#99cc99">=</span> <span style="color:#99cc99">''</span>
?
</code></span>

這個(gè)方法比較笨,當(dāng)然也可以實(shí)現(xiàn)效果,但是一個(gè)一個(gè)去重新賦值比較麻煩而且代碼看起來也會(huì)比較亂。

下面這個(gè)方法肯定是你喜歡的,一行代碼搞定~

2. 使用Object.assign()

MDN關(guān)于該方法的介紹:Object.assign() 方法用于將所有可枚舉屬性的值從一個(gè)或多個(gè)源對象復(fù)制到目標(biāo)對象。它將返回目標(biāo)對象。

用法: Object.assign(target, ...sources)

第一個(gè)參數(shù)是目標(biāo)對象,第二個(gè)參數(shù)是源對象,就是將源對象屬性復(fù)制到目標(biāo)對象,返回目標(biāo)對象

其中就是將一個(gè)對象的屬性copy到另一個(gè)對象

vue中:

  • this.$data 獲取當(dāng)前狀態(tài)下的data
  • this.$options.data() 獲取該組件初始狀態(tài)下的data

所以,下面就可以將初始狀態(tài)的data復(fù)制到當(dāng)前狀態(tài)的data,實(shí)現(xiàn)重置效果:

Object.assign(this.$data, this.$options.data())

當(dāng)然,如果你只想重置data中的某一個(gè)對象或者屬性:

this.form = this.$options.data().form

擴(kuò)展

Object.assign(target, ...sources) 方法還可以用來合并對象:

<span style="color:#000000"><code class="language-js"><span style="color:#cc99cc">const</span> o1 <span style="color:#99cc99">=</span> <span style="color:#999999">{</span> a<span style="color:#999999">:</span> <span style="color:#f99157">1</span> <span style="color:#999999">}</span><span style="color:#999999">;</span>
<span style="color:#cc99cc">const</span> o2 <span style="color:#99cc99">=</span> <span style="color:#999999">{</span> b<span style="color:#999999">:</span> <span style="color:#f99157">2</span> <span style="color:#999999">}</span><span style="color:#999999">;</span>
<span style="color:#cc99cc">const</span> o3 <span style="color:#99cc99">=</span> <span style="color:#999999">{</span> c<span style="color:#999999">:</span> <span style="color:#f99157">3</span> <span style="color:#999999">}</span><span style="color:#999999">;</span>
?
<span style="color:#cc99cc">const</span> obj <span style="color:#99cc99">=</span> Object<span style="color:#999999">.</span><span style="color:#6699cc">assign</span><span style="color:#999999">(</span>o1<span style="color:#999999">,</span> o2<span style="color:#999999">,</span> o3<span style="color:#999999">)</span><span style="color:#999999">;</span>
console<span style="color:#999999">.</span><span style="color:#6699cc">log</span><span style="color:#999999">(</span>obj<span style="color:#999999">)</span><span style="color:#999999">;</span> <span style="color:#999999">// { a: 1, b: 2, c: 3 }</span>
console<span style="color:#999999">.</span><span style="color:#6699cc">log</span><span style="color:#999999">(</span>o1<span style="color:#999999">)</span><span style="color:#999999">;</span> ?<span style="color:#999999">// { a: 1, b: 2, c: 3 }, 注意目標(biāo)對象自身也會(huì)改變。</span>
</code></span>

如果對象中含有相同屬性,取最后一個(gè)屬性:

<span style="color:#000000"><code class="language-js"><span style="color:#cc99cc">const</span> o1 <span style="color:#99cc99">=</span> <span style="color:#999999">{</span> a<span style="color:#999999">:</span> <span style="color:#f99157">1</span><span style="color:#999999">,</span> b<span style="color:#999999">:</span> <span style="color:#f99157">1</span><span style="color:#999999">,</span> c<span style="color:#999999">:</span> <span style="color:#f99157">1</span> <span style="color:#999999">}</span><span style="color:#999999">;</span>
<span style="color:#cc99cc">const</span> o2 <span style="color:#99cc99">=</span> <span style="color:#999999">{</span> b<span style="color:#999999">:</span> <span style="color:#f99157">2</span><span style="color:#999999">,</span> c<span style="color:#999999">:</span> <span style="color:#f99157">2</span> <span style="color:#999999">}</span><span style="color:#999999">;</span>
<span style="color:#cc99cc">const</span> o3 <span style="color:#99cc99">=</span> <span style="color:#999999">{</span> c<span style="color:#999999">:</span> <span style="color:#f99157">3</span> <span style="color:#999999">}</span><span style="color:#999999">;</span>
?
<span style="color:#cc99cc">const</span> obj <span style="color:#99cc99">=</span> Object<span style="color:#999999">.</span><span style="color:#6699cc">assign</span><span style="color:#999999">(</span><span style="color:#999999">{</span><span style="color:#999999">}</span><span style="color:#999999">,</span> o1<span style="color:#999999">,</span> o2<span style="color:#999999">,</span> o3<span style="color:#999999">)</span><span style="color:#999999">;</span>
console<span style="color:#999999">.</span><span style="color:#6699cc">log</span><span style="color:#999999">(</span>obj<span style="color:#999999">)</span><span style="color:#999999">;</span> <span style="color:#999999">// { a: 1, b: 2, c: 3 } 屬性取最后一個(gè)對象的屬性</span></code></span>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

乌兰浩特市| 玉山县| 德庆县| 江华| 江源县| 万源市| 平顺县| 青岛市| 古浪县| 荣昌县| 阿瓦提县| 江川县| 兰考县| 东乡| 绵阳市| 鲁甸县| 澎湖县| 乐昌市| 玉龙| 永康市| 将乐县| 莱芜市| 铜川市| 广灵县| 深州市| 库车县| 司法| 万全县| 玛曲县| 霸州市| 卓尼县| 北京市| 麟游县| 肥城市| 嘉鱼县| 岳普湖县| 罗甸县| 淮阳县| 松滋市| 罗城| 宁夏|