Gutenberg 区块编辑器文档

title: "向后兼容性" post_status: publish comment_status: open taxonomy: category: - gutenberg-docs post_tag: - Code - Contributors - Repos


向后兼容性

历史上,WordPress 一直以保持跨版本向后兼容性而闻名。Gutenberg 在其生产环境的公共 API 中尽可能遵循这一原则。在极少数情况下,破坏向后兼容性不可避免,此时应遵循以下原则:

什么构成生产环境公共 API

Gutenberg 代码库由两种不同类型的包组成:

向后兼容性保证仅适用于生产环境包,因为更新是通过 WordPress 升级进行的。

生产环境包使用 wp 全局变量向第三方开发者提供 API。这些 API 可以是 JavaScript 函数、变量和 React 组件。

如何保持 JavaScript 函数的向后兼容性

如何保持 React 组件的向后兼容性

如何保持区块的向后兼容性

类名与 DOM 更新

React 组件树内部使用的类名和 DOM 节点不被视为公共 API 的一部分,因此可能被修改。

修改这些内容需谨慎,因为它们可能影响第三方代码的样式和行为(即使第三方代码本不应依赖这些内容)。尽可能保留原有类名和节点。若无法保留,请记录变更并编写开发说明。

弃用说明

随着项目发展,现有 API 的缺陷会被发现,或者需要更新以支持新功能。出现这种情况时,我们会尽力确保现有 API 不被破坏,并构建新的替代 API。

为了鼓励第三方开发者采用新 API,我们可以使用 deprecated 辅助工具来显示说明弃用的消息,并在旧 API 被使用时推荐替代方案。

请明确说明功能何时被弃用。使用辅助方法的 sinceplugin 选项。

示例:

deprecated( 'wp.components.ClipboardButton', {
    since: '10.3',
    plugin: 'Gutenberg',
    alternative: 'wp.compose.useCopyToClipboard',
} );

开发说明

开发说明是在 WordPress 发布前于 make/core 站点发布的文章,旨在向第三方开发者通报开发者 API 的重要变更,这些变更可能包括:

开发者说明工作流程