Radio
在共享同一 name 的分组中选择一项。
导入
“导入”部分import { Radio } from "@pelagornis/page/components";示例
“示例”部分上方预览渲染的就是这个文件。把它复制到 src/components/ 即可开始使用。
import { useState } from "react";import { Radio, Stack } from "@pelagornis/page/components";
const plans = [ { value: "basic", label: "Basic", description: "For personal docs" }, { value: "pro", label: "Pro", description: "Includes versioned docs" }, { value: "team", label: "Team", description: "Shared workspaces" },];
export default function RadioDemo() { const [plan, setPlan] = useState("pro");
return ( <Stack gap="sizeSmall" role="radiogroup" aria-label="Plan"> {plans.map((item) => ( <Radio key={item.value} name="plan" value={item.value} label={item.label} description={item.description} checked={plan === item.value} onChange={(event) => setPlan(event.target.value)} /> ))} </Stack> );}在 MDX 中使用
“在 MDX 中使用”部分Radio 可以直接写在 .mdx 页面中。在 frontmatter 下方导入即可。它在服务器端渲染,不需要 client 指令。
---title: Example---
import { Radio } from "@pelagornis/page/components";
<Radio name="plan" value="basic" label="Basic" defaultChecked /><Radio name="plan" value="pro" label="Pro" />在 Markdoc 中使用
“在 Markdoc 中使用”部分pageMarkdoc() 会为这个组件注册 radio 标签。在 markdoc.config.mjs 中添加一次预设(见在 Markdoc 中使用),就能在任意 .mdoc 页面中使用该标签。
{% radio name="plan" value="basic" label="Basic" defaultChecked=true /%}{% radio name="plan" value="pro" label="Pro" /%}属性的名称和取值与 React props 相同。
结构
“结构”部分组件的组成部分,以及每个部分渲染的 data-refineui 角色。
| 部件 | 角色 |
|---|---|
root | radio |
状态
“状态”部分组件会设置样式的状态。组件状态通过 data 属性暴露。
| 类型 | 状态 |
|---|---|
| 伪类 | focus-visible |
键盘
“键盘”部分组件获得焦点时处理的按键。
| 按键 | 动作 |
|---|---|
| Space | activate |
参考
“参考”部分- 设计指南和令牌细节见 RefineUI · Radio。
- 通用规则见在 MDX 中使用和在 Markdoc 中使用。