深入响应式原理

    受现代 JavaScript 的限制 (而且 Object.observe 也已经被废弃),Ale 不能检测到对象属性的添加或删除。由于 Ale 会在初始化实例时对属性执行 getter/setter 转化过程,所以属性必须在 data 对象上存在才能让 Ale 转换它,这样才能让它是响应的。例如:

      当你触发 setter(操作数据更新时),Ale 首先会更新这些数据,然后计算出更新后的全部属性结果,并循环更新。

      另外,diff 对比只会在同级 DOM 中进行,一旦发生层级改变,Ale 将不会继续对比,而是直接更新整个层。这样可以有效地增加 diff 的对比性能,减少对比的时间。