编辑器插件本地ID
@atlaskit/editor-core的本地界面插件
说明: 这一构成部分是为阿特拉斯系统内部开发而设计的。 外部捐助者将能够使用这一构成部分,但无法提交问题.
概览
本地 ID 插件确保文档中的所有非标志节点都具有独有性 localId 属性。 它结合了两种最佳业绩方法:
- 一次性初始化扫描 - 编辑器启动时将缺失的本地ID添加到已存在的节点
- 递增交易处理 - 在创建新节点时添加本地ID
主要特点
- 自动指定本地身份 - 确保没有本地身份证的所有节点都能收到独特的标识符
- 高效初始化 - 用途
requestIdleCallback与requestAnimationFrame萨法里倒下 - 递增更新 - 仅在交易期间处理更改了节点
- 节点过滤 - 忽略节点类型(文本、硬断层、媒体组)
- 批处理 - 在一个交易中应用所有更新
- 跟踪错误 - 通过监视器插件对本地ID更改进行可选错误报告
- 插件动作 - 提供
getNode财务报告和审定财务报表replaceNode本地 ID 查询和修改节点的动作
如何运作
初始化阶段
- 触发: 使用编辑器视图的初始化生命周期来安排扫描
- 执行: 在浏览器闲置时间执行单个文档 trversal
- 时间安排: 用途
requestIdleCallback与requestAnimationFrame萨法里倒下 - 目的:确保所有现有的节点都有本地的ID
交易处理阶段
- 触发: 对每次更改文档的交易激活
- 执行: 只处理交易步骤中新建/更改的节点
- 业绩: 只扫描已更改的范围, 而不是整个文档
- 目的: 在新创建的节点中添加本地ID
节点处理
每个节点(在初始化和交易处理期间):
- 忽略了节点: 总是跳过( 文本, 硬块)
- 已存在的本地Id 节点: 左转不变
- 没有本地标识的节点: 生成和指派新的 UUID
交易处理
- 递增更新: 只有实际更改的处理节点
- 高效扫描: 用途
step.getMap()以识别已更改的区域 - 位置精确度: 获得所有已更改节点的精确文档位置
- 批处理: 单一交易中应用的所有更新
行为
| 大小写 | 采取的行动 | 交易影响 |
|---|---|---|
没有现有节点 localId (开始) | localId 添加 | 所有更改的单一交易 |
未添加新节点 localId (交易) | localId 添加 | 所有更改的单一交易 |
节点已经有一个 localId | 不变 | 无交易 |
| 只有选择更改 | 未采取行动 | 无交易 |
| 切换操作 | 跳过以避免冲突 | 无交易 |
| 文档不变 | 提前退出 | 无交易 |
安装
- 安装 - 说吧 线条添加 @ atlaskit/ editor- plugin- local- id
- 无 - 说吧 @atlaskit/编辑-plugin-local-id
- 来源 - 说吧 键盘
- 套装 - 说吧 unpkg.com (英语)
使用量
仅内部使用
@atlaskit/editor-plugin-local-id是供@atlaskit/editor-core内部使用,并作为您产品中编辑器的插件依赖.
不支持直接使用此组件.
请看 Atlaskit - 本地代号编辑器插件 用于此软件包的文档和示例.
支助
对于内部阿特拉斯人, 访问懒惰的通道 # 帮助编辑器 # 支助或访问 去/编辑-帮助 以提交错误.
许可证
请看 阿特拉斯前端 - 许可证 获取更多的许可证信息.