2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
Vue 會(huì)深拷貝這個(gè)對(duì)象嗎
深拷貝?不,但是您將獲得該組件的淺表副本,因?yàn)槟趧?chuàng)建一個(gè)新對(duì)象(使用擴(kuò)展語法)。
與任何淺拷貝一樣,如果initialData
包含對(duì)象,那么這些對(duì)象將不會(huì)被深拷貝,但頂層字符串和數(shù)字(等)將被拷貝。
用來JSON.parse
做深拷貝是一種黑客攻擊。最好使用像 lodash 這樣的專用深拷貝方法_.cloneDeep
。或者你可以只寫initialData
一個(gè)工廠函數(shù):
const createInitialData = () => ({
? foo: 'bar',
? nestedObject: {
? ? blah: 12345
? }
})
data() {
? return {
? ? ...createInitialData(),
? ? somethingElse: 'hello there'
? }
}

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
為什么不嘗試看看會(huì)發(fā)生什么?
some-data.js
在最后的文件中添加如下內(nèi)容:
setInterval(function() { console.log(initialData) }, 1000);
然后當(dāng)您導(dǎo)入它時(shí),修改一些東西并查看日志會(huì)發(fā)生什么。
不管是哪種情況,您都應(yīng)該使用 Vuex。
添加回答
舉報(bào)