Draft.js Modifiers模块化状态修饰符

Draft.js 的状态管理还在自己手搓?draft-js-modifiers 这个库就挺省事的,了一堆现成的状态修饰方法,比如你想往某个 block 里加点 metadata,直接用 mergeBlockData 一行搞定,省时省力。

支持模块化导入也是它的亮点之一。像 adjustBlockDepth 这类方法可以单独引入,配合 Webpack、Rollup 的 Tree Shaking,打包干净利落,不会带进一堆没用的代码。

用法上也直观:import * as Modifiers from 'draft-js-modifiers',你就可以像调用工具函数那样 EditorState。比如:

const newEditorState = Modifiers.mergeBlockData(currentEditorState, { foo: 1 })

适合什么场景?比如你在做一个富文本编辑器的插件系统,频繁 block 状态,用它会比直接操作 Draft.js 的 API 轻松不少。而且 API 命名还挺语义化,基本不用看文档都能猜出来是干啥的。

如果你对状态不可变更新比较在意,或者觉得 Draft.js 原始 API 用起来有点拧巴,这个库还蛮值得一试的。

哦对了,顺手推荐一篇Webpack Tree Shaking 优化的文章,和这个库搭配食用更香。

如果你正好在写基于 Draft.js 的编辑器,又想让代码结构更清晰,不妨装个 draft-js-modifiers 玩玩,命令是:

yarn add draft-js-modifiers
# or
npm i draft-js-modifiers

zip 文件大小:72.71KB