在使用vue
構建元件化應用時,每個元件的data
屬性都是以函式形式返回的,這主要是在元件化實現的時候,每個例項可以維護乙份被返回物件的獨立的拷貝,而不是共享同乙個物件的引用。
在乙個vue
簡單例項中,也就是不使用元件化實現的時候,data
可以是乙個物件,因為本身也只有乙個例項,就不存在多個例項共享的問題。
如果是使用vue
的元件化例項,那麼data
屬性就必須以函式的形式返回,如果不使用函式的形式返回,可能會出現一些意料之外的情況,比如下面的例子中,按鈕元件是復用的,在點選第乙個按鈕時本身應該只有第乙個按鈕+1
,但是所有的按鈕都跟隨+1
。請注意,在此處仍然是使用函式的形式返回,這是因為如果在元件化實現中如果不使用函式的形式返回vue
會直接報錯,但是實現的效果是相同的,雖然是以函式的形式返回,但是返回的物件中count
屬性都是指向了對於counter
物件的引用,本質上依舊是多個元件例項共享乙個物件,實際效果與以物件的形式直接返回相同。
所以為了規避這種現象,在元件化實現的時候,data
屬性必須以函式的形式返回,以便每個例項可以維護乙份被返回物件的獨立的拷貝,而不是共享同乙個物件的引用。
vue元件中data是個函式
當我們const vm new vue 用習慣了,data是乙個物件,可到了vue元件 vue.component cp data return info hello vue 因為vue.component是乙個建構函式,data資料是放在vue.component.prototype裡的所以如果是...
vue中data返回乙個函式
function person var obj1 person var obj2 person obj1.name b console.log obj1 console.log obj2 a function person var obj1 person var obj2 person obj1.n...
vue元件中data為什麼是個函式
在vue的開發中,我們在元件中採用函式這種格式 data 在vue例項中採用的是物件這種格式 data 那麼為什麼要在元件中採用函式的方式呢?首先元件是多次使用的,也就是復用。當我們多次呼叫乙個元件,肯定不希望元件中資料是相互聯通的。所以在此使用函式的方式return乙個物件,這樣每次呼叫元件返回的...