一个类excel 的 table 表格,
一个单元格, 为 另几个单元格的 运算结果
现在问题是,
第一次运算,我可以设置失去焦点,来 运算或 校验 结果单元格的 value
同时, 另几个单元格更改时, 运算结果的 单元格 的 value 应该要同步更新才是
这里有个问题. watch 整个数据对象改变,可以达到这个目的.
但是,这个数据对象 太多了.还有其它各种样式位置信息,
其它无关信息改变,全部遍历运算一次,好象有点low
这种方式应该是不合理的
请教合理的方法.
// 失去焦点,进行格式校验 或 函数运算
function inputBlurCheck(cell: TableCell) {
// 当如第一个字符 不为 '= '号 格式校验
if(cell.attr.proto.charAt(0)!=='='){
cellBlurCheck(cell.attr)
} else{ // 当如第一个字符 为 '= '号 ,进行函数运算
console.log('是函数')
cell.attr.value = cumputCell(cell.attr.proto,tableJson.value.body)
}
}
不理解为什么要通过 blur 来触发更新,直接 computed 不行吗?
或者render函数返回对应的计算方式。
可以另外新建个对象,将需要计算的单元格信息提取出来放到这新对象中,当某个单元格修改了更新原来的数据,同时更新这个对象,通过监控新对象来实现修改原来的数据,这样减少遍历的数据大小。
可以试试找出他的相关性,改变对应的数据就好,不用全遍历。具体的要看类表格功能吧。只这么点看不出什么来
给表格单元格增加index(横轴纵轴),以此快速跟踪发生改变的地方
提取需要计算的对象,与得到的数据进行对比,监听数据的变化,