星海

Vue · 单选题 · 第 49 题

前端与全栈开发面试 · 第 49 题

Vue 3 的响应式系统基于什么实现?

  1. A用 Object.defineProperty 递归改写对象上每一个属性
  2. B用脏检查,每隔一段时间比较新旧值是否发生了变化
  3. C用定时器轮询数据,一旦发现变化就重新渲染整个页面
  4. D用 Proxy 代理对象,读取时收集依赖,写入时触发更新

答案

D D. 用 Proxy 代理对象,读取时收集依赖,写入时触发更新

解析

Proxy 拦截的是整个对象,所以新增属性、删除属性、数组下标和长度的变化都能被侦测到,并且是访问到深层对象时才递归代理,初始化更快。Object.defineProperty 是 Vue 2 的方案。脏检查是 AngularJS 1.x 的做法。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。