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
72.71KB
文件大小:
评论区