一个列表 只做增量操作
function diffAndConvert(arr1, arr2) { //将arr2同步成arr1,并且对arr2扩展 arr2.forEach((v, i) => { var flag1 = false; arr1.forEach(v1 => { if (v.id == v1.id) { flag1 = true; } }); if (flag1 == false && arr2.length != 0) { arr2.splice(i, 1); } }); arr1.forEach(v => { var flag = false; arr2.forEach(v1 => { if (v1.id == v.id) { for(let items in v){ if(items!=='dataList'){ v1[items] = v[items]; } } flag = true; } }); if (flag == false) { arr2.push(v); if(!v.dataList){ active=v; } } }); arr1.forEach(v => { arr2.forEach(v1 => { if (v1.id == v.id) { if (v.dataList && v.dataList.length != 0) { diffAndConvert(v.dataList, v1.dataList); } } }); }); }//此处可以优化 先做递归删除 后边添加和修改的部分可以用loadash的merge 为了保证原数组的状态 可以只在初始化的时候加入状态 以后合并就不会影响其状态 //进一步优化数据量大的时候每次新增或者修改记录父级id 之后只遍历该父级就可
笔记的深度监听方式和组合的_equal方式哪个更好(可以优化吗 容易出问题 因为深度watch性能不好 而且多次频繁变化不容易掌控)和组合的每次点击对比哪个好 拖拽移动 和可拖拽式布局
笔记滚动鼠标实现文字放大缩小 监听滚动事件 用zoom来实现