亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Vue.js的data是要一個對象還是一個function

Vue.js的data是要一個對象還是一個function

aluckdog 2019-03-15 10:10:56
Vue.js的data是要一個對象還是一個function
查看完整描述

4 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

Vue 實例的數據對象。Vue.js 會遞歸地將它全部屬性轉為 getter/setter,從而讓它能響應數據變化。這個對象必須是普通對象:原生對象,getter/setter 及原型屬性會被忽略。不推薦觀察復雜對象。
在實例創建之后,可以用 vm.$data 訪問原始數據對象。Vue 實例也代理了數據對象所有的屬性。
在定義組件時,同一定義將創建多個實例,此時 data 必須是一個函數,返回原始數據對象。如果 data 仍然是一個普通對象,則所有的實例將指向同一個對象!換成函數后,每當創建一個實例時,會調用這個函數,返回一個新的原始數據對象的副本。

文件寫成.vue的文件就是組件的寫法,因此這時data必須是一個函數,而你貼的var vm = new Vue({})是直接跑在瀏覽器環境下的用法,這時data可以是一個普通對象,也可以寫成一個返回普通對象的函數,不過沒必要。

查看完整回答
反對 回復 2019-03-20
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

數據控制離要data面做種操作
data屬性依賴關系建議直接使用計算屬性吧且函數邏輯自新建method處理整組件更清晰些建議

查看完整回答
反對 回復 2019-03-20
?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

在一個普通的 Vue app 中,data 是一個對象:

123456789new Vue( { data : { title : 'abc' }} );

在 Vue 的 Component 中,data 要寫成一個 function,并返回對象:

12345678910111213Vue.component( 'component-name', Vue.extend( { data : function() { return { title : 'abc' }; }} ) );

查看完整回答
反對 回復 2019-03-20
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

The "data" option should be a function that returns a per-instance value in component definitions.
但是我看文檔里出現的data都是一個對象,比如:

var vm = new Vue({
data: {
a: 1
},
created: function () {
// `this` 指向 vm 實例
console.log('a is: ' + this.a)
}
})
// -> "a is: 1"

查看完整回答
反對 回復 2019-03-20
  • 4 回答
  • 0 關注
  • 780 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號