背??景今天在陌陌麦麦上看到一个帖子,讲的是前端三段恋情。1、富文本编辑器市面上已经有很多优秀的开源版本,但问题在于每个产品的特殊性。富文本编辑器的需求不同,所以有时可能会导致手动编辑器如:Draft.jsSlate.jswangEditor这些富文本编辑器也针对不同的框架派生版本,比如React,还有一些插件。有兴趣的可以去github搜个star,这样就可以使用作者当时为桌面软件写的富文本编辑器(Electron,类似微信的聊天编辑器)。这是非常痛苦的。你要控制光标、焦点、复制粘贴,适应QQ、微信、wps等多种操作系统环境下的复制粘贴。我觉得我可以写很多论文。2.在线excel推荐一个githubstars11.6K的开源库。Luckysheetdemo体验地址:https://mengshukeji.github.io/LuckysheetDemo/支持:1.格式设置。包括字体、字号、颜色、文本对齐方式、自动换行和excel2支持的各种数据类型。单元格。拖选、拖放填充、自动填充、查找和替换、合并单元格等。3.排名。隐藏、插入、删除、冻结。4.操作。撤消、复制、粘贴、剪切、快捷键、格式刷、筛选排序、评论、共享编辑。5.功能。内置常用公式,支持自定义公式。6.图表。目前支持折线图、直方图、面积图、柱状图、饼图,支持插入图片。3.CRDT-Conflict-FreeReplicatedDataType科普:在分布式计算中,无冲突复制数据类型(英文:CRDT)是一种可以在网络中多台计算机上复制的数据结构,副本可以独立并发更新不需要副本之间的协调,并且可能的不一致总是通过数学方式解决。1357CRDT的概念于2011年由MarcShapiro、NunoPregui?a、CarlosBaquero和MarekZawirski正式定义。[9]开发的最初动机是协作文本编辑和移动计算。CRDT还用于在线聊天系统、在线赌博和SoundCloud音频分发平台。NoSQL分布式数据库Redis、Riak和CosmosDB具有CRDT数据类型。推荐一个8K星前端CRDT实时协作库Yjs:https://github.com/yjs/yjsYjs主要内部特点:基于双向链表的基本数据结构和基于YATA算法的StructStore并发冲突解决机制基于DeleteSet和Transaction机制Undo和redo是基于两阶段同步机制。它支持:建模数据结构、解决并发冲突、回溯历史、同步网络状态等。使用示例import*asYfrom'yjs'//应用程序中的所有协作状态都可以在单个托管在YDoc容器中//将实例传递给WebSocket等协议的提供者后,可以支持网络同步constdoc=newY.Doc()//可以在YDoc上创建不同类型的顶层YModel实例//这里创建顶层YMapnamedrootconstyRoot=doc.getMap('root')//也可以使用类构造函数实例化独立的YMap和其他YModel//可以直接使用getsetdelete等通用API进行增删改查queryYModelconstyPoint=newY.Map()yPoint.set('x',0)yPoint.set('y',0)//YMap的值也可以是YMap,从而构造一个嵌套数据类型yRoot。set('point',yPoint)//YMap也可以存储YText和其他YModel组成复合数据类型constyName=newY.Text()yName.insert(0,'WilsonEdwards')yRoot.set('name',yName)以上引用了本文的部分内容,建议深入阅读:https://zhuanlan.zhihu.com/p/452980520本人水平有限。如果想深入这个CRDT,建议多看论文。最后,我是彼得。如果觉得文章对大家有帮助,可以帮我看看,点个赞,关注我的公众号:前端巅峰。这里将为大家带来最实用的web2、web3知识点!
