⭐️ 本文首发自 前端修罗场(点击加入社区,参与学习打卡,获取奖励),是一个由资深开发者独立运行的专业技术社区,我专注 Web 技术、区块链、Web 3、答疑解惑、面试辅导以及职业发展。🔥 本文已收录至前端面试题库专栏: 《前端面试复习笔记》(点击订阅)。
当一个Vue实例创建时,Vue会遍历 data 中的属性,用 Object.defineProperty
(vue3.0 使用 proxy
)将它们转为 getter/setter
,并且在内部追踪相关依赖,在属性被访问和修改时通知变化。
Object.defineProperty
是 ES5 中一个无法 shim
的特性,这也就是 Vue 不支持 IE8 以及更低版本浏览