vue2-為啥data屬性是一個函數而不是對象
1. data在vue實例和組件中的表現差異
- vue實例的時候,data既可以是一個對象也可以是一個函數
new Vue({data:{//對象name:'tom'},data(){//函數return{name:'tom'}}
})
- 而在組件中定義data,只能是函數,如果定義為對象,會報錯,data option should be a function
2. 為什么組件中的data必須是函數
- 先說為什么Vue實例的data可以是對象吧,因為Vue實例對象是單例模式,不存在數據污染
- 而組件會有多個組件,如果使用對象,就會出現共用一個對象的情況,就會出現數據污染。
- 而如果使用函數,每個組件實例化的時候,都會得到一份獨立的data,避免出現數據污染