[Vue]vue核心面試題:元件中的data為什麼是一個函式

DaftJayee發表於2020-10-14

1.vue中元件是用來複用的,為了防止data複用,將其定義為函式。

2.vue元件中的data資料都應該是相互隔離,互不影響的,元件每複用一次,data資料就應該被複制一次,之後,當某一處複用的地方元件內data資料被改變時,其他複用地方元件的data資料不受影響,就需要通過data函式返回一個物件作為元件的狀態。

3.當我們將元件中的data寫成一個函式,資料以函式返回值形式定義,這樣每複用一次元件,就會返回一份新的data,擁有自己的作用域,類似於給每個元件例項建立一個私有的資料空間,讓各個元件例項維護各自的資料。

4.當我們元件的date單純的寫成物件形式,這些例項用的是同一個建構函式,由於JavaScript的特性所導致,所有的元件例項共用了一個data,就會造成一個變了全都會變的結果。

相關文章