分为三种情况:初次渲染,局部小更新,还有整个列表数据全部替换。 1.初次渲染:脏检测不需要注入数据,所以渲染更快。 2.局部小更新:脏检测肯定不如defineProperties,因为需要整个遍历。 3.整个列表更新:脏检测更快,因为这个时候defineProperties的指向性优势不存在了就是全量更新,还要考虑各种defineProperties里面潜在的冲突问题,另外对于新的数据,又要来一遍递归的注入数据。而脏检测不需要。 我们业务中更多的是第三种情况。