第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

vue-cli 中的Data為什么要是方法?

為什么data要這么寫啊?

正在回答

5 回答

并不是這樣的,data在子組件里是一個函數(shù),是為了告訴你,這個數(shù)據(jù)是這個組件獨享的,不要和其他組件公用,避免沖突。

0 回復(fù) 有任何疑惑可以回復(fù)我~

官網(wǎng)上有非常好的解釋, 請點擊這里,?data必須是一個函數(shù)

0 回復(fù) 有任何疑惑可以回復(fù)我~

// 直接聲明的對象只占某一塊內(nèi)存空間,對它的所有引用共用該空間。

var data = {

? id: 'abc',

? count: 100

}

console.log('type:', typeof data)

var a = data

var b = data

console.log('a.id=', a.id)

a.id = '007'

console.log('a.id=', a.id)

console.log('b.id=', b.id)

// 方法每次返回的對象在內(nèi)存中占用不同塊空間,每個引用各自維護自己的空間。

function dfunc() {

? return {

? ? id: 'default_value',

? ? count: 1

? }

}

console.log('type:', typeof dfunc)

var a1 = dfunc()

var b1 = dfunc()

console.log('a1.id=', a1.id)

a1.id = '008'

console.log('a1.id=', a1.id)

console.log('b1.id=', b1.id)

猜測:

Vue 在獲取data 這個組件的成員時會先判斷其類型,如果是一個對象則直接引用,如果是一個函數(shù)則獲取函數(shù)的返回值。

以上代碼就是模擬Vue 獲取data 對象的過程,當data 直接是一個對象時所有該組件的實例公用一份數(shù)據(jù),當data 時函數(shù)時每個組件實例維護自己的數(shù)據(jù)。


1 回復(fù) 有任何疑惑可以回復(fù)我~

子組件里面的data是函數(shù)是因為當我們頁面中運用同一個子組件多次,要是data只是一個對象的話,相同子組件就會共享這個data對象,這是一件非常糟糕的事情。寫成函數(shù)返回一個對象是想讓子組件有自己的data對象而不與其它組件共享

0 回復(fù) 有任何疑惑可以回復(fù)我~

這是es6的語法,可以更好的優(yōu)化頁面性能吧

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

vue-cli 中的Data為什么要是方法?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號