响应式原理 数据劫持: 使用 Proxy 或 Object.defineProperty 拦截数据的读写操作, 数据变成响应式数据 依赖收集: 响应式数据被访问时, 收集访问该数据的依赖, 比如组件的渲染函数 触发更新: 响应式数据被修改时, 触发被收集的依赖, 然后重新渲染组件