我正在尝试向表中添加和删除表行,而不重新呈现所有未修改的行。当我将行添加到表末尾时,现有行不会重新呈现,并且新行将添加到视图中。但是,当我将行添加到表(行)的开头时,所有行都会重新呈现,包括未修改的行。我检查了 HTML,所有现有行在添加之前和之后都完全相同。
这是由于 snabbdom 进行 diff 的方式所致吗?自上而下的方法?我已经在每个 DIV 格式中看到了相同类型的逻辑,没有任何问题。对此的任何见解都会非常好,或者有任何想法如何进一步调试它,而不仅仅是进行简单的 html diff。
我怀疑这个代码可能会导致这种行为。 https://github.com/snabbdom/snabbdom/blob/60c604159038680cdd70d9725d2a209746569bb8/src/init.ts#L318
有人可以检查我的理智吗?
在我的发现中,这个问题的答案严格来说是snabbdom是如何实施的。实现修补的框架是这种差异和修补发生的地方。