0

我正在尝试对sharedb我的前端代码实施操作。我目前拥有它,以便它提交操作(https://github.com/ottypes/json0),特别text0是当我的react组件触发其onChange事件时。例如:

如果我的文字是: Hello World

我删除l了它 Hello Word

然后我s在最后添加使它 Hello Words

我想要它,以便我的 OT 文本差异应该具有提交给其他客户的操作(除非这是错误的)

[{p: 9, d: 'l'}, {p: 10, i: 's'}]

使用库或手动生成这些操作的最佳方法是什么?我研究了可能使用diff库,但它没有给出操作发生位置的任何索引,尽管给出了插入和删除操作是什么。

4

1 回答 1

0

您可以使用浏览器提供的选择属性和 onkeydown 事件手动构建变更集,或者使用差异库,例如Neil Fraser 的https://www.npmjs.com/package/diff_match_patch对我非常有用(免责声明: 我是那个包的发布者。)

于 2018-03-15T18:54:56.993 回答