Vue是怎麼解決響應式系統中數據循環引用的序列化問題的?

今天突發奇問,對這個問題很好奇。我們自己寫一個有循環引用的數據的話,如果調用JSON.stringify的話就會報錯。而加入到Vue響應式系統的數據都會循環引用,類似value.ob.value === value。它是怎麼解決這個問題的呢?

起初我覺得它應該是提供toJSON來實現,我巴拉了源碼,發現就根本沒有toJSON。然後就超出了我的知識範圍了,到達了知識盲點。繼續巴拉代碼,發現在給對象掛上__ob__時調用的defineProperty傳遞的enumerable是false。好了,所有疑問都迎刃而解了。就是這個配置,讓JSON.stringify時,忽略這個屬性:)

發佈了49 篇原創文章 · 獲贊 34 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章