為什麼data是乙個函式呢?
最直接的說法就是防止元件例項之間的資料相互影響。
解釋說明:
object是引用資料型別,如果元件data使用物件,會造成當乙個元件進行復用的時候data的指向都就會是記憶體的同乙個位址,乙個資料改變了其他也改變了;
vue中元件是可復用的vue例項,乙個元件被建立好之後,就可能被用在各個地方,而元件不管被復用了多少次,元件中的data資料都應該是相互隔離,互不影響的。
將data資料以函式返回值形式定義,來防止相互影響其本質是利用了js中的函式作用域之間互不影響的原理。
補充說明:
data建議使用函式返回值形式,但是不代表不能使用物件形式。如:
某乙個元件在整個專案中僅僅使用唯一一次,那也可以使用物件形式。但是為了讓專案**內容統一沒有特異性,最好所有的元件中的data都使用函式返回值形式。
vue中元件的data為什麼是乙個函式
元件是可復用的vue例項,乙個元件被建立好之後,就可能被用在各個地方,而元件不管被復用了多少次,元件中的data資料都應該是相互隔離,互不影響的,基於這一理念,元件每復用一次,data資料就應該被複製一次,之後,當某一處復用的地方元件內data資料被改變時,其他復用地方元件的data資料不受影響,如...
vue元件中data為什麼是個函式
在vue的開發中,我們在元件中採用函式這種格式 data 在vue例項中採用的是物件這種格式 data 那麼為什麼要在元件中採用函式的方式呢?首先元件是多次使用的,也就是復用。當我們多次呼叫乙個元件,肯定不希望元件中資料是相互聯通的。所以在此使用函式的方式return乙個物件,這樣每次呼叫元件返回的...
為什麼Vue元件裡面data必須是個函式
首頁我們先了解乙個原形和原型鏈,每個js物件和js方法都有乙個原形,js物件的是隱式原形 proto,而方法中的是顯示原形prototype,下面舉個例子 export default methods 其實底層是 component.proto data 而var obj 底層是var obj ne...