add, del: del, update: update, resort: resort, rerender: add.concat(update), modify: add.length || del.length || update.length }; }, renderHTML: function(data) { // diff⼀一下各模块是否有修改 diff = this.diffHTML(tpls, ctpls); console.log(diff); // 如果有修改(增删改) if (diff.modify) { // 先销毁原先的模块逻辑 rerender = diff.rerender; this.destroyMods(rerender); // 先删除没有的模块 diff.del.forEach(function(t) { node = S.one('.' + t.id); node && node.remove(true); }); // 增加新增的模块 diff.add.forEach(function(t) { container.append(t.html); }); // 更新原有的模块 diff.update.forEach(function(t) { // !!!去抢购不需要重新替换HTML if (t.id !== 'trip_home_sale') { node = S.one('.' + t.id); node && node.replaceWith(t.html); } }); } // 如果顺序发⽣生变化 if (diff.resort) { tpls.forEach(function(t) { node = S.one('.' + t.id); node && container.append(node); }); } return rerender; },