此模块允许您创建和使用独立的块编辑器。
安装
安装该模块
npm install @wordpress/block-editor --save
本包假定您的代码将在ES2015+环境中运行。如果您使用的环境对该语言特性和 API 的支持有限或完全不支持,则应在代码中包含@wordpress/babel-preset-default随附的 polyfill。
用法
import { useState } from 'react';
import {
BlockCanvas,
BlockEditorProvider,
BlockList,
} from '@wordpress/block-editor';
function MyEditorComponent() {
const [ blocks, updateBlocks ] = useState( [] );
return (
<BlockEditorProvider
value={ blocks }
onInput={ ( blocks ) => updateBlocks( blocks ) }
onChange={ ( blocks ) => updateBlocks( blocks ) }
>
<BlockCanvas height="400px" />
</BlockEditorProvider>
);
}
// Make sure to load the block editor stylesheets too
// import '@wordpress/components/build-style/style.css';
// import '@wordpress/block-editor/build-style/style.css';
在此示例中,我们正在实例化一个块编辑器。块编辑器由 BlockEditorProvider 包装组件组成,在该组件中传递当前的块数组,并且在每次更改时,根据更改是否被视为持久性,会调用 onInput 或 onChange 回调函数。
在 BlockEditorProvider 内部,您可以嵌套任何可用的 @wordpress/block-editor UI 组件来构建编辑器的界面。
在上述示例中,我们渲染了 BlockList 以显示和编辑块列表。例如,我们可以添加一个自定义侧边栏,并使用 BlockInspector 组件来编辑当前选中块的高级设置。(请参阅 API 获取所有可用组件的列表)。
BlockTools 组件用于为选定的块呈现工具栏。
在上述示例中,没有注册任何块类型。为了成功使用块编辑器,请确保注册一些块类型。例如,注册核心块类型可以像这样完成:
import { registerCoreBlocks } from '@wordpress/block-library';
registerCoreBlocks();
// Make sure to load the block stylesheets too
// import '@wordpress/block-library/build-style/style.css';
// import '@wordpress/block-library/build-style/editor.css';
// import '@wordpress/block-library/build-style/theme.css';
API
本包中任何在 @wordpress/components 中有对应项的组件都是对这些组件的扩展。
除非您正在创建编辑器,否则建议使用 @wordpress/components 中的组件而不是本包中的组件,因为这些组件已针对编辑器用途进行了定制,如果在编辑器上下文之外使用可能会导致意外行为。
AlignmentControl
相关
AlignmentToolbar
相关
Autocomplete
相关
BlockAlignmentControl
相关
BlockAlignmentToolbar
相关
BlockBindingsAttributeControl
渲染用于查看和编辑块属性绑定的控件。
参数
- root0
Object: 组件属性。 - root0.attribute
string: 块属性名称。 - root0.binding
[Object]: 当前块绑定。 - root0.blockName
string: 块类型名称。
返回
Element: 块属性绑定控件。
BlockBindingsSourceFieldsList
未记录的声明。
BlockBreadcrumb
块面包屑组件,以面包屑形式显示当前块选择层级的层次结构。
参数
- props
Object: 组件属性。 - props.rootLabelText
string: 面包屑路径根元素的翻译标签。
返回
Element: 块面包屑。
BlockCanvas
BlockCanvas 组件是一个用于显示块编辑器画布的组件。我们所说的画布是一个包含块列表的 iframe,您可以对其进行操作。该组件还负责连接所有必要的钩子,以启用编辑器中跨块的键盘导航,并将内容样式注入到 iframe 中。
用法
function MyBlockEditor() {
const [ blocks, updateBlocks ] = useState( [] );
return (
<BlockEditorProvider
value={ blocks }
onInput={ updateBlocks }
onChange={ persistBlocks }
>
<BlockCanvas height="400px" />
</BlockEditorProvider>
);
}
参数
- props
Object: 组件属性。 - props.height
string: 画布高度,默认为 300px。 - props.styles
Array: 注入到 iframe 中的内容样式。 - props.children
Element: 画布的内容,默认为 BlockList 组件。
返回
Element: 块面包屑。
BlockColorsStyleSelector
未记录的声明。
BlockContextProvider
将传入的值与当前消耗的块上下文合并的组件。
相关
参数
- props
BlockContextProviderProps:
BlockControls
未记录的声明。
BlockEdit
未记录的声明。
BlockEditorKeyboardShortcuts
未记录的声明。
BlockEditorProvider
未记录的声明。
BlockFormatControls
未记录的声明。
BlockIcon
相关
BlockInspector
相关
BlockList
未记录的声明。
BlockMover
相关
BlockNavigationDropdown
未记录的声明。
BlockPopover
相关
BlockPreview
BlockPreview 渲染块或块数组的预览。
相关
参数
- preview
Object: 预览显示方式的选项 - preview.blocks
Array|Object: 要预览的块实例(对象)或块数组。 - preview.viewportWidth
number: 预览容器的宽度,单位为像素。控制块在预览中渲染的尺寸大小。默认值:700。
返回
Component: 要渲染的组件。
BlockSelectionClearer
未记录的声明。
BlockSettingsMenu
未记录的声明。
BlockSettingsMenuControls
相关
参数
- props
Object: Fill props。
返回
Element: 元素。
BlockStyles
未记录的声明。
BlockTitle
将块配置的标题呈现为字符串,如果无法确定标题,则返回空字符串。
用法
<BlockTitle
clientId="afd1cb17-2c08-4e7a-91be-007ba7ddc3a1"
maximumLength={ 17 }
/>
参数
- props
Object: - props.clientId
string: 块的客户端 ID。 - props.maximumLength
number|undefined: 块标题字符串在被截断前允许的最大长度。 - props.context
string|undefined: 传递给getBlockLabel的上下文。
返回
React.JSX.Element: 块标题。
BlockToolbar
呈现块工具栏。
相关
参数
- props
Object: 组件属性。 - props.hideDragHandle
boolean: 显示或隐藏用于拖放功能的拖动手柄。 - props.variant
string: 工具栏的样式变体,也传递给从 Block Toolbar Buttons 渲染的下拉菜单。
BlockTools
呈现块工具(块工具栏、选择/导航模式工具栏、插入点以及内联富文本工具栏的插槽)。必须包裹住块内容和编辑器样式包装器或 iframe。
参数
- $0
Object: 属性。 - $0.children
Object: 块内容和样式容器。 - $0.__unstableContentRef
Object: 持有内容滚动容器的引用。
BlockVerticalAlignmentControl
相关
BlockVerticalAlignmentToolbar
相关
ButtonBlockAppender
相关
ButtonBlockerAppender
已弃用
请改用 ButtonBlockAppender。
ColorPalette
未记录的声明。
ColorPaletteControl
未记录的声明。
ContrastChecker
相关
CopyHandler
已弃用
参数
- props
Object:
createCustomColorsHOC
一个高阶组件工厂,用于创建 ‘withCustomColors’ HOC,该 HOC 处理类生成颜色值、检索和颜色属性设置的逻辑。
使用此高阶组件来处理自定义颜色集。
用法
const CUSTOM_COLORS = [
{ name: 'Red', slug: 'red', color: '#ff0000' },
{ name: 'Blue', slug: 'blue', color: '#0000ff' },
];
const withCustomColors = createCustomColorsHOC( CUSTOM_COLORS );
// ...
export default compose(
withCustomColors( 'backgroundColor', 'borderColor' ),
MyColorfulComponent
);
参数
- colorsArray
Array: 颜色对象数组(名称、slug、颜色等…)。
返回
Function: 高阶组件。
DefaultBlockAppender
未记录的声明。
DimensionControl
DimensionControl 呈现一个链接的单位控件和范围控件,用于调整块的尺寸。
相关
参数
- props
Object: - props.label
?string: 控件的标签。 - props.onChange
( value: string ) => void: 当尺寸值更改时调用。 - props.value
string: 当前尺寸值。 - props.placeholder
?string: 自定义值输入的占位符文本。 - props.className
?string: 包装 fieldset 上的额外 CSS 类。 - props.dimensionSizes
?Object: 可选的尺寸大小预设。回退到 store 中的设置。
返回
Component: 要渲染的组件。
FontSizePicker
相关
getBackgroundClassesAndStyles
提供块背景支持属性的 CSS 类名和内联样式。
参数
- attributes
Object: 块属性。
返回
Object: 源自背景块支持的 CSS 类 & 样式。
getColorClassName
根据颜色的使用上下文及其 slug 返回一个类名。
参数
- colorContextName
string: 颜色使用的上下文/位置,例如:background、text 等… - colorSlug
string: 颜色的 slug。
返回
?string: 包含所提供上下文中对应颜色的类的字符串。如果未提供 colorContextName 或 colorSlug,则返回 undefined。
getColorObjectByAttributeValues
提供由主题或编辑器默认值设置的颜色对象数组,以及定义的颜色或自定义颜色的值,返回描述该颜色的颜色对象。
参数
- colors
Array: 由主题或编辑器默认值设置的颜色对象数组。 - definedColor
?string: 包含颜色 slug 的字符串。 - customColor
?string: 包含 customColor 值的字符串。
返回
?Object: 如果传递了 definedColor 且在 colors 中找到了该名称,则返回与主题或编辑器默认值完全一致的颜色对象。否则,定义一个仅设置颜色的对象。
getColorObjectByColorValue
提供由主题或编辑器默认值设置的颜色对象数组,以及一个颜色值,返回匹配该值的颜色对象或 undefined。
参数
- colors
Array: 由主题或编辑器默认值设置的颜色对象数组。 - colorValue
?string: 包含颜色值的字符串。
返回
?Object: colors 数组中包含 color 属性等于 colorValue 的颜色对象。如果没有颜色对象满足此要求,则返回 undefined。
getComputedFluidTypographyValue
计算使用 clamp() 的流式字体大小值。可以指定最小和最大字体大小,或者单个字体大小。
如果指定了单个字体大小,它将使用对数刻度进行缩放。
用法
// 从最小值和最大值计算流体字体大小值。
const fontSize = getComputedFluidTypographyValue( {
minimumFontSize: '20px',
maximumFontSize: '45px',
} );
// 从单个字体大小计算流体字体大小值。
const fontSize = getComputedFluidTypographyValue( {
fontSize: '30px',
} );
参数
- args
Object: - args.minimumViewportWidth
?string: 文本开始具有流体特性的最小视口尺寸。如果指定了 fontSize,则为可选。 - args.maximumViewportWidth
?string: 文本保持流体特性的最大尺寸。如果指定了 fontSize,则为可选。 - args.fontSize
[string|number]: 用于推导 maximumFontSize 和 minimumFontSize 的大小(如有必要)。如果指定了 minimumFontSize 和 maximumFontSize,则为可选。 - args.maximumFontSize
?string: 任何 clamp() 计算的最大字体大小。可选。 - args.minimumFontSize
?string: 任何 clamp() 计算的最小字体大小。可选。 - args.scaleFactor
?number: 一个缩放因子,用于确定字体在边界内缩放的快慢。可选。 - args.minimumFontSizeLimit
?string: 计算出的字体大小允许的最小值。可选。
返回
string|null: 使用 clamp() 的字体大小值。
getCustomValueFromPreset
将间距预设转换为自定义值。
参数
- value
string: 要转换的值 - spacingSizes
Array: 当前间距预设对象数组
返回
string: 间距预设到其等效自定义值的映射。
getDimensionsClassesAndStyles
为块级元素的 dimensions 支持属性提供 CSS 类名和内联样式。
参数
- attributes
Object: 块级属性。
返回
Object: 源自 Dimensions 块支持的 CSS 类及样式。
getFontSize
根据命名字体大小数组以及 namedFontSize 和 customFontSize 值返回字体大小对象。如果 namedFontSize 未定义或在 fontSizes 中未找到,则返回仅包含基于 customFontSize 的大小值的对象。
参数
- fontSizes
Array: 包含至少“name”和“size”值作为属性的字体大小对象数组。 - fontSizeAttribute
?string: 字体大小属性的内容(slug)。 - customFontSizeAttribute
?number: 自定义字体大小属性的内容(值)。
返回
?Object: 如果设置了 fontSizeAttribute 并且在 fontSizes 中找到了相等的 slug,则返回该 slug 对应的字体大小对象。否则,返回仅包含基于 customFontSize 的大小值的对象。
getFontSizeClass
基于 fontSizeName 返回一个类名。
参数
- fontSizeSlug
string: fontSize 的 slug。
返回
string | undefined: 与传入的 fontSize 对应的字符串类名。该类名通过在 kebabCase 格式的 fontSizeSlug 前添加 ‘has-’ 并在末尾添加 ‘-font-size’ 生成。
getFontSizeObjectByValue
返回给定值对应的字体大小对象。
参数
- fontSizes
Array: 字体大小对象数组。 - value
number: 字体大小值。
返回
Object: 字体大小对象。
getGradientSlugByValue
按 slug 检索渐变 slug。
参数
- gradients
Array: 渐变调色板 - value
string: 渐变值
返回
string: 渐变 slug。
getGradientValueBySlug
按 slug 检索渐变值。
参数
- gradients
Array: 渐变调色板 - slug
string: 渐变 slug
返回
string: 渐变值。
getPxFromCssUnit
已弃用
此函数因意外暴露给 mobile/native 使用。
返回
string: 空字符串。
getSpacingPresetCssVar
将间距预设转换为自定义值。
参数
- value
string: 要转换的值。
返回
string | undefined: 给定间距预设值的 CSS var 字符串。
getStyleForState
返回所选块样式的状态样式对象。
用法
const state = { viewport: '@mobile' };
const stateStyle = getStyleForState( attributes.style, state ) || {};
参数
- style
Object: 块样式对象。 - selectedState
Object: 选定的块样式状态。
返回
Object: 如果找到,则为所选状态的样式对象。
getTypographyClassesAndStyles
为块级元素的 typography 支持属性提供 CSS 类名和内联样式。
参数
- attributes
Object: 块级属性。 - settings
Object|boolean: 合并后的 theme.json 设置
返回
Object: 源自 Typography 块支持的 CSS 类及样式。
HeadingLevelDropdown
用于选择标题级别(1 到 6)或段落(0)的下拉菜单。
参数
- props
WPHeadingLevelDropdownProps: 组件属性。
返回
ComponentType: 工具栏。
HeightControl
已弃用 请改用 DimensionControl。
HeightControl 渲染一个链接的单位控件和范围控件,用于调整块的高度。
相关
参数
- props
Object: - props.label
?string: 控件的标签。 - props.onChange
( value: string ) => void: 当高度更改时调用。 - props.value
string: 当前高度值。
返回
Component: 要渲染的组件。
InnerBlocks
相关
Inserter
未记录的声明。
InspectorAdvancedControls
未记录的声明。
InspectorControls
相关
isValueSpacingPreset
检查给定值是否为间距预设。
参数
- value
string: 要检查的值
返回
boolean: 如果值是格式为 var:preset|spacing| 的字符串,则返回 true。
JustifyContentControl
相关
JustifyToolbar
相关
LineHeightControl
相关
LinkControl
渲染一个链接控件。链接控件是一个受控输入,它维护与链接(HTML 锚元素)关联的值以及有关该链接预期行为的相关设置。
用法模式
该组件不支持完全受控的实现,但支持可观察的实现。
不受控(默认)
组件管理其自己的搜索输入状态:
<LinkControl value={ link } onChange={ setLink } />
可观察
在不控制值的情况下观察输入更改:
<LinkControl
value={ link }
onChange={ setLink }
onInputChange={ ( newValue ) => console.log( newValue ) }
/>
未受控且带有初始值
使用默认值预填充搜索输入框:
<LinkControl
value={ link }
onChange={ setLink }
inputValue="wordpress"
onInputChange={ ( newValue ) => console.log( newValue ) }
/>
参数
- props
WPLinkControlProps: 组件属性。
MediaPlaceholder
相关
MediaReplaceFlow
相关
MediaUpload
相关
MediaUploadCheck
相关
MultiSelectScrollIntoView
已弃用
如果多块选择范围尚未在视图中,则将其滚动到视图中。这在通过键盘进行选择后非常重要。
NavigableToolbar
未记录的声明。
ObserveTyping
相关
PanelColorSettings
未记录的声明。
PlainText
渲染一个自动增长的文本区域,允许用户填写任何文本内容。
相关
用法
import { registerBlockType } from '@wordpress/blocks';
import { PlainText } from '@wordpress/block-editor';
registerBlockType( 'my-plugin/example-block', {
// ...
attributes: {
content: {
type: 'string',
},
},
edit( { className, attributes, setAttributes } ) {
return (
<PlainText
className={ className }
value={ attributes.content }
onChange={ ( content ) => setAttributes( { content } ) }
/>
);
},
} );
参数
- props
Object: 组件属性。 - props.value
string: 文本区域的字符串值。 - props.onChange
Function: 当文本值更改时调用的函数。 - props.ref
[Object]: 组件将ref属性转发给textarea元素。
返回
Element: 纯文本组件
privateApis
私有 @wordpress/block-editor API。
RecursionProvider
一个 React context 提供者,用于与 useHasRecursion 钩子配合使用,以防止递归渲染。
使用此提供者包装块内容,并提供与 useHasRecursion 中使用的相同的 uniqueId 属性。
参数
- props
Object: - props.uniqueId
*: 任何充当块实例唯一标识符的值。 - props.blockName
string: 可选的块名称。 - props.children
React.JSX.Element: React 子元素。
返回
React.JSX.Element: 一个 React 元素。
RichText
相关
RichTextShortcut
未记录的声明。
RichTextToolbarButton
未记录的声明。
setStyleForState
返回一个样式对象,其中选定的块样式状态已更新。
用法
const state = { viewport: '@mobile' };
const stateStyle = getStyleForState( attributes.style, state ) || {};
setAttributes( {
style: setStyleForState( attributes.style, state, {
...stateStyle,
dimensions: { ...stateStyle.dimensions, minHeight: '50vh' },
} ),
} );
参数
- style
Object: 块样式对象。 - selectedState
Object: 选定的块样式状态。 - newStyle
Object: 选定状态的新样式。
返回
Object: 更新的样式对象。
SETTINGS_DEFAULTS
默认编辑器设置
类型定义
- SETTINGS_DEFAULT
Object
属性
- alignWide
boolean: 启用/禁用宽/全对齐 - supportsLayout
boolean: 在容器块中启用/禁用布局支持。 - imageEditing
boolean: 图像编辑设置设置为 false 以禁用。 - imageSizes
Array: 可用的图像尺寸 - maxWidth
number: 约束调整大小的最大宽度 - allowedBlockTypes
boolean|Array: 允许的块类型 - hasFixedToolbar
boolean: 编辑器工具栏是否固定 - distractionFree
boolean: 编辑器 UI 是否无干扰 - focusMode
boolean: 聚焦模式是否启用 - styles
Array: 编辑器样式 - keepCaretInsideBlock
boolean: 光标在编辑模式下是否应在块之间移动 - bodyPlaceholder
string: 空文章占位符 - titlePlaceholder
string: 空标题占位符 - canLockBlocks
boolean: 用户是否可以管理块锁定状态 - codeEditingEnabled
boolean: 用户是否可以切换到代码编辑器 - blockStatesEditingEnabled
boolean: 是否启用块样式状态编辑 - generateAnchors
boolean: 启用/禁用标题块的自动锚点生成 - enableOpenverseMediaCategory
boolean: 在插入器中启用/禁用 Openverse 媒体类别。 - clearBlockSelection
boolean: 当未点击块时,块编辑器是否应在鼠标按下时清除选择。 - __experimentalCanUserUseUnfilteredHTML
boolean: 用户是否应能够使用未过滤的 HTML,或者是否应对 HTML 进行过滤,例如移除被视为不安全的元素(如 iframe)。 - __experimentalBlockDirectory
boolean: 用户是否启用了块目录 - __experimentalBlockPatterns
Array: 表示块模式的对象数组 - __experimentalBlockPatternCategories
Array: 表示块模式类别的对象数组
SkipToSelectedBlock
相关
store
块编辑器命名空间的存储定义。
相关
storeConfig
块编辑器数据存储配置。
相关
ToolSelector
此组件已被弃用,不再渲染任何内容。
transformStyles
应用一系列 CSS 规则转换,根据传递的参数将选择器包装在给定类中并/或重写 URL。
参数
- styles
EditorStyle[]: CSS 规则。 - wrapperSelector 包装选择器。
- transformOptions
TransformOptions: 样式转换的其他选项。
返回
- 转换后的规则。
Typewriter
确保在此组件内的键盘事件期间,文本选择与视口的垂直距离保持不变。该垂直距离可能会有所不同,它对应的是最后一次点击或滚动到的位置。
URLInput
用于输入 URL 的文本字段,并提供匹配的文章、页面及其他链接建议的自动完成列表。
相关资源
参数
- props
Object: 组件属性。
URLInputButton
相关资源
URLPopover
相关资源
useBackgroundProps
从块的支持背景属性中派生出与背景相关的属性。
建议在编辑组件中使用此函数,以便编辑器设置可以在后续解析,而无需新的 API。
参数
- attributes
Object: 块属性。
返回
Object: 来自背景块支持的 ClassName & style 属性。
useBlockBindingsUtils
检索更新块 bindings 元数据所需的现有工具函数。它们可用于基于现有的块属性创建、修改或删除连接。
它包含以下工具函数:
updateBlockBindings: 更新连接到块属性的绑定值。可以通过将值设置为undefined来移除特定的绑定。removeAllBlockBindings: 移除metadata属性的 bindings 属性。
用法
import { useBlockBindingsUtils } from '@wordpress/block-editor';
const { updateBlockBindings, removeAllBlockBindings } = useBlockBindingsUtils();
// 更新 url 和 alt 属性。
updateBlockBindings( {
url: {
source: 'core/post-meta',
args: {
key: 'url_custom_field',
},
},
alt: {
source: 'core/post-meta',
args: {
key: 'text_custom_field',
},
},
} );
// 从 url 属性中移除绑定。
updateBlockBindings( { url: undefined } );
// 从所有属性中移除绑定。
removeAllBlockBindings();
参数
- clientId
?string: 可选的块客户端 ID。如果未设置,它将使用上下文中的当前块客户端 ID。
返回
?WPBlockBindingsUtils: 包含块绑定工具函数的对象。
更新日志
6.7.0 在 WordPress 核心中引入。
useBlockCommands
未记录的声明。
useBlockDisplayInformation
用于尝试查找匹配的块变体并返回适当显示信息的钩子。为了尝试匹配,我们需要两件事:1. 块的客户端 ID 以提取其当前属性。2. 块变体应将 isActive 属性设置为适当的函数。
如果由于任何原因无法找到块变体匹配项,则返回的信息来自块类型。如果未找到具有提供的 clientId 的 blockType,则返回 null。
参数
- clientId
string: 块的客户端 ID。
返回
?WPBlockDisplayInformation: 块的显示信息,如果未找到块或其类型,则返回null。
useBlockEditContext
useBlockEditContext 钩子提供有关使用该钩子的块的信息。它返回一个包含块的 name、isSelected 状态和 clientId 的对象。如果您想创建需要访问当前块 clientId 但不希望依赖作为参数传入的数据的自定义钩子,这将非常有用。
返回
Object: 块编辑上下文
useBlockEditingMode
允许块限制用于编辑该块及其内部块的用户界面。
用法
function MyBlock( { attributes, setAttributes } ) {
useBlockEditingMode( 'disabled' );
return <div { ...useBlockProps() }></div>;
}
mode 可以是以下三个选项之一:
'disabled': 完全阻止编辑该块,即无法
选中它。'contentOnly': 隐藏所有非内容 UI,例如工具栏中的辅助控件、
块移动器、块设置。'default': 允许正常编辑该块。
除非内部块有自己的模式,否则该模式会被块的所有内部块继承。
如果在块上下文之外调用,则该模式应用于所有块。
参数
- mode
?BlockEditingMode: 要应用的编辑模式。如果为 undefined,则不更改当前的编辑模式。
返回
BlockEditingMode: 当前的编辑模式。
useBlockProps
此钩子用于轻量级地将元素标记为块元素。该元素应该是块的最外层元素。调用此钩子并将返回的属性传递给要标记为块的元素。如果您为元素定义了 ref,重要的是将此 ref 传递给此钩子,该钩子随后会通过其返回的属性将其传递给组件。此外,您还可以传递任何其他属性,它们将被合并并返回。
如果使用 API >= v2,则在块的最外层元素上使用此钩子是必需的。
用法
import { useBlockProps } from '@wordpress/block-editor';
export default function Edit() {
const blockProps = useBlockProps( {
className: 'my-custom-class',
style: {
color: '#222222',
backgroundColor: '#eeeeee',
},
} );
return <div { ...blockProps }></div>;
}
参数
- props
Object: 可选。要传递给元素的属性。如果定义了 ref,则必须包含 ref。 - options
Object: 仅供内部使用的选项。 - options.__unstableIsHtml
boolean:
返回
Object: 要传递给元素以标记为块的属性。
useCachedTruthy
保持传入值的最新副本并返回它。如果值变为假值,它将返回最后一个真值副本。
参数
- value
any:
返回
any: 值
useHasRecursion
一个 React 钩子,用于跟踪块树上方之前渲染的块。容易受到递归影响的块可以在其 Edit 函数中使用此钩子以防止此类递归。
将此钩子与 RecursionProvider 组件一起使用,为钩子和提供者使用相同的 uniqueId 值。
参数
- uniqueId
*: 任何用作块实例唯一标识符的值。 - blockName
string: 可选的块名称。
返回
boolean: 描述提供的 ID 是否已被渲染的布尔值。
useInnerBlocksProps
此钩子用于轻量级地将元素标记为内部块包装器元素。调用此钩子并将返回的属性传递给要标记为内部块包装器的元素,自动将内部块渲染为子元素。如果您为元素定义了 ref,重要的是将此 ref 传递给此钩子,该钩子随后会通过其返回的属性将其传递给组件。此外,您还可以传递任何其他属性,它们将被合并并返回。
相关资源
参数
- props
Object: 可选。要传递给元素的属性。如果定义了 ref,则必须包含 ref。 - options
Object: 可选。内部块选项。
useSetting
已弃用 6.5.0 请改用 useSettings。
检索正在使用的块实例给定设置的钩子。
它首先在块实例层次结构中查找设置。如果未找到,它将在块编辑器设置中查找。
用法
const isEnabled = useSetting( 'typography.dropCap' );
参数
- path
string: 设置的路径。
返回
any: 返回为设置定义的值。
useSettings
用于检索当前使用的块实例中给定设置的钩子。
它首先在块实例层级中查找设置。如果未找到,则会在块编辑器设置中查找它们。
用法
const [ fixed, sticky ] = useSettings( 'position.fixed', 'position.sticky' );
参数
- paths
string[]: 设置的路径。
返回
any[]: 返回为设置定义的值。
useStyleOverride
覆盖块编辑器设置样式。将 ID 留空以创建新样式。
参数
- override
Object: 覆盖对象。 - override.id
?string: 样式覆盖的 ID,留空以创建新样式。 - override.css
string: 要应用的 CSS。
Warning
相关
withColorContext
未记录的声明。
withColors
一个高阶组件,处理类生成颜色值、检索和颜色属性设置的颜色逻辑。
用于默认编辑器/主题调色板。
用法
export default compose(
withColors( 'backgroundColor', { textColor: 'color' } ),
MyColorfulComponent
);
参数
- colorTypes
...(Object|string): 参数可以是字符串或对象。如果参数是对象,它应包含颜色属性名作为键,颜色上下文作为值。如果参数是字符串,则该值应为颜色属性名,颜色上下文通过对值应用 kebab-case 转换来计算。颜色上下文表示颜色将被使用的环境/位置。颜色类的名称是使用 ‘has’ 后跟颜色名称并以颜色上下文结尾生成的,全部采用 kebab-case 格式,例如:has-green-background-color。
返回
Function: 高阶组件。
withFontSizes
高阶组件,处理类生成、字体大小值检索和字体大小更改处理的字体大小逻辑。
参数
- fontSizeNames
...(Object|string): 参数都应该是字符串。每个字符串包含字体大小属性名,例如:‘fontSize’。
返回
Function: 高阶组件。
WritingFlow
处理跨块的选择和导航。此组件应包裹在 BlockList 周围。
参数
- props
Object: 组件属性。 - props.children
Element: 要渲染的子元素。
贡献到此包
这是 Gutenberg 项目的一部分,是一个独立的包。该项目组织为 monorepo。它由多个自包含的软件包组成,每个包都有特定的用途。此 monorepo 中的包发布到 npm,并被 WordPress 以及其他软件项目使用。
要了解有关为此包或整个 Gutenberg 做出贡献的更多信息,请阅读项目的主要 贡献者指南。