这是去年一个项目case
先简单说下富文本的解决方案 其次 公司不太会支持让我们买编辑器使用版权 其次 开发是vue的微前端框架,业务这块都是vue&elementui, 在此前提下 最终放弃了react相关解决方案 调研过的不限于下面
| 产品名 | DEMO链接 | 平台 | IE兼容性 | 费用 |
|---|---|---|---|---|
| UEditor | ueditor.baidu.com/website/onl… | PC | IE8 | 免费 |
| wangEditor | www.wangeditor.com/index.html | PC | 未知 | 免费 |
| CKEditor | ckeditor.com/ckeditor-5-… | PC/wise | 未知 | 收费 |
| Froala Editor | www.froala.com/wysiwyg-edi… | PC/wise | IE10 | 收费 |
| Redactor | imperavi.com/redactor/ex… | PC/wise | 未知 | 收费 |
| textbox | textbox.io/ | PC/wise | 未知 | 收费 |
| jodit | xdsoft.net/jodit/examp… | PC/wise | 未知 | 收费 |
说下怎么实现在富文本里插入一个多级下拉框
思路一 富文本插入一个占位 然后new vue实例
下面这个版本是基于wangEditor实现 虽然铿锵的实现了,测试中发现的问题比较多
尤其多实例的时候,换行 光标移动的时候问题 匪夷所思的多。具体case就不赘述了。
第一个方案不是很好 其次选择编辑器本身这个块底层处理的不是很好。
尤其没有增加一个其他块元素和行间元素焦点位置校验,而在插件层层去处理焦点位置,也不好处理,
反正自己没有实现的很理想,后来也自己实现了一个富文本 解决了很大一部分问题&发现后期项目需求迭代 又暴露很多问题。每个传统富文本的能力我还需要重新撸一遍,想一想头就大。富文本不得一万一万的
不建议触碰的,根因设计问题导致维护成本增大,富文本本身需要一个渐进的实践过程,
成熟的项目还是需要一个成熟的方案,所以才不得换个思路
demo case 代码
思路二 设计一个数据结构驱动的富文本框架,能力也在富文本标准设计格式里呈现,让复杂结构的组件也成为富文本数据格式的标准实现。本这个思路,再次深度调研和实践发现QUILL
不管是开源支持,使用量&包括自己demo 这个绝对不错的选择
在此基础上 梳理下 以后都基于标准去实现任何一个富文本插件。 至此 你会发现 只要你需要你定制化开发任何你一个让你满意的quill插件 下面是一个实现思路和设计要素
有意思有两点需要注意 1是 Unicode占位这个是不可或缺的,如果没有光标会有问题(感觉是富文本黑洞因子,目前还不得其法),2 其次需要一个快元素的 contenteditabe为fasle,要不然出现event相关的默认事件问题
至于级联选择器插件的实现 内部叫自定义 多级下拉框[blockEmbed]
能力上参考了elementui ## Cascader 级联选择器
下面贴个demo地址
github.com/bigcui/quil…
效果如下