vue同步和異步的區別,vue Mutation 必須是同步函數 為什么_為什么vue組件中data必須用函數表達?

 2023-12-25 阅读 29 评论 0

摘要:今天我就拿我的這篇文章來做個開頭吧。vue同步和異步的區別、看到這個問題可能很多人都并可以注意過這個問題,問什么在腳手架中的.vue文件中data不能用對象來表達,而是必須使用函數的形式來表達呢?大家可能也不知道為什么這么設計?實際上這是很有

e5548d430ea8260ae8ee88e42c305072.png

今天我就拿我的這篇文章來做個開頭吧。

vue同步和異步的區別、看到這個問題可能很多人都并可以注意過這個問題,問什么在腳手架中的.vue文件中data不能用對象來表達,而是必須使用函數的形式來表達呢?大家可能也不知道為什么這么設計?

實際上這是很有學問的,當初框架設計的時候,都是想了很多可能會出現的問題的。

首先我們做一個類比,如下代碼:

22649aa54f49521cda562cb423f8830e.png

vue父組件異步傳值如何處理? 對三個不同的變量obj1,obj2,obj3進行賦值,并且都是調用方法abc(),也就是說創建了三個不一樣的實例,所以返回的此方法返回的值,就被賦值給了不同的地址。 因此這三個變量的內存地址是不同的,此時改變其中一個變量的值,其他兩個變量的值是不會跟隨發生改變的。

我們此時在做一個類比,如下圖:

786cc60fff51b25f82154c49ada0b16c.png

我們首先聲明一個常量obj(假設被儲存在內存地址0x100),再寫一個函數abc()其返回值為剛剛定義的常量obj(返回的值指向地址0x100)。 所以我們對三個變量obj1,obj2,obj3進行賦值abc(),都是指向0x100的地址,此時更改其中一個變量的值,我們就會發現其他兩個變量的值也隨之改變。如下圖解釋:

vue函數式組件使用場景。

165f1f775a419d5011d9b58bf58c2ffe.png

我們回過頭來看當前組件

當前組件為,如果我們在實例中多次使用當前組件的話如下:

1dbaedb04d1e4f146961ace4d1b8c8e8.png

vue數據請求在哪個生命周期進行。如果我們把組件里面的data改成一個對象的話,如下圖:

58ee9aa49f086e704fcab0cdd7e5c15c.png

data此時是一個對象,里面存放著很多數據,都是指向同一個地址。 此時如果重復的使用相同的當前組件,每一個組件用的值都是從這個data:{}對象中取得(也就是說都是從同一個地址中取值),就對組件之間造成了相互干擾。 同理,我們就可以知道組件中的data使用函數然后返回一個對象的話,就不會存在這個問題了,因為在創建不同組件的時候,會return出不同地址的對象,并不存在干擾組件之間的數據綁定之類的問題

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/194657.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息