Vue->data爲何是一個函數而不是對象

前言

問題描述:爲何在vue組件中,咱們的data屬性必須是一個函數,new Vue()中的data除外,由於new Vue中只有一個data屬性。前端

緣由:由於咱們能抽離出來的組件,確定是具備複用性的,它在項目中會存在多個實例。若是data屬性值是一個對象時,那麼它全部的實例都會共享這些數據,這是很麻煩的事情,你不能確保你的全部實例中的屬性值都不會重複。vue

咱們的指望是,組件的每一個實例都能獨立的維護本身的數據。函數

疑點解析


咱們都知道,在JavaScript中,函數具備獨立做用域快的特色,外部是沒法訪問其內部的變量。 試想一下,若是咱們組件中的data返回一個函數,他的每一個實例就會有本身的做用域空間,也就是獨立的數據,每一個實例之間不會相互影響。

因此,組件中的data屬性必須是一個函數。對象

寫在最後

但願個人分享對你有所幫助,更多資訊請持續關注,我會分享愈來愈多的實戰經驗哦! 或加入大前端知識體系社區一塊兒探索技術:608229520ip

相關文章
相關標籤/搜索