Collapsible

Collapsible 是 Accordion 的单项原语:一个触发器控制一块内容的展开与收起,适合只需要一个折叠区的场景。下方预览由 pingo 引擎实时渲染——点击触发器切换。

用法

import { createElement } from "@dopejs/pingo";
import { Collapsible } from "@dopejs/pingo-ui";

root.render(
  createElement(Collapsible, {
    trigger: "高级选项",
    defaultOpen: true,
    children: createElement("text", { value: "折叠区内容。" }),
  }),
);

既支持非受控(defaultOpen)也支持受控(open + onOpenChange)两种用法。

示例

禁用

传入 disabled 后触发器不再响应指针与键盘,并应用禁用样式。

Props

Prop 类型 默认值 说明
trigger string 触发器文本(必填)
children PingoNode 展开后显示的内容(必填)
open boolean 受控:当前展开状态
defaultOpen boolean false 非受控:初始展开状态
onOpenChange (open: boolean) => void 展开状态变化回调
disabled boolean false 禁用触发器
className string 追加在组件类名之后

无障碍

触发器具备 button 语义,并向辅助技术暴露 expanded/collapsed 状态;Enter 与空格切换展开。内容收起时以 display: none 隐藏而非卸载,内部的滚动位置与编辑状态得以保留。

最后更新: