Files
aurora-admin/site/end-content/breadcrumb.react.json

61 lines
3.3 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"slug": "breadcrumb",
"end": "react",
"curated": true,
"summary": "面包屑:items 数组渲染层级,末项自动标记当前页且不可点击,点击上级经 onSelect 回传对象。",
"usage": [
"React 端只接收 items=[{ label }] 与 onSelect 两个 props(Breadcrumb.jsx:4)。",
"末项由组件按索引判断:最后一项加 is-current 类并且不绑定跳转(Breadcrumb.jsx:10-11),不需要业务侧额外传标志位。",
"onSelect(it) 回传的是被点项的完整对象而不是下标/字符串(Breadcrumb.jsx:11),父组件可直接取 it.path 之类的自定义字段。",
"分隔符是组件内固定的「/」span,不在 items 里配置(Breadcrumb.jsx:15)。",
"列表用 React.Fragment 加索引 key 渲染,因此 items 不需要唯一 id(Breadcrumb.jsx:8)。"
],
"bestPractices": [
"items 的每一项要带够跳转信息(如 path 或 id),onSelect 只给对象,路由跳转由父组件完成。",
"不要给末项也提供跳转目标,源码已禁止最后一项触发 onSelect,传了也不会被调用。",
"层级过深时优先在外层做省略处理,组件本身不做折叠或收起。"
],
"apiCarrier": {
"kind": "props",
"note": "React 端的 API 载体是 props 与回调:属性驱动外观(type/size/disabled 等布尔与枚举),交互经 onXxx 回传(如 onChange/onClick/onSelectionChange);没有 v-model,受控组件固定写成 value + onChange,非受控则用 defaultValue。",
"table": [
{
"name": "items",
"type": "Array<{ label, ... }>",
"desc": "层级数据;末项渲染为当前页且不可点击"
},
{
"name": "onSelect",
"type": "(item) => void",
"desc": "点击非末项时回调,参数为该项对象"
}
]
},
"a11y": [
"容器是 div(Breadcrumb.jsx:6),缺少 nav 地标与 aria-label,读屏无法把面包屑识别为导航区域。",
"各项是带 onClick 的 span(Breadcrumb.jsx:9-12),没有链接语义、不可通过 Tab 聚焦,跳转型面包屑建议在业务侧改造为锚点或按钮。"
],
"resources": [
{
"file": "frameworks/Breadcrumb.jsx",
"kind": "React(React)",
"desc": "React 端组件实现源码,props 与回调的唯一定义处"
},
{
"file": "frameworks/Breadcrumb.css",
"kind": "样式",
"desc": "该 React 实现依赖的样式文件"
}
],
"exampleIds": [
"breadcrumb-ex-1"
],
"notes": [
"frameworks/Breadcrumb.jsx:4 中可指到 items(Array<{ label, ... }>)——层级数据;末项渲染为当前页且不可点击",
"frameworks/Breadcrumb.jsx:4 中可指到 onSelect((item) => void)——点击非末项时回调,参数为该项对象",
"props 解构清单见 frameworks/Breadcrumb.jsx:4-4;本文件 table 只列该端真正消费的属性与回调。",
"过滤口径:事实包 consumedApi 里还包含绑在组件内部节点上的同名处理器(如 onClick/onChange 绑在内部 button、input、checkbox 上,见 frameworks/Breadcrumb.jsx 全文),它们不是对外 props,因此未进 table。",
"table 构成核验:2 行中 2 行是 frameworks/Breadcrumb.jsx 解构出的顶层 props(解构块 frameworks/Breadcrumb.jsx:4-4);本组件 table 全部为顶层 props。"
]
}