Files
aurora-admin/site/end-content/qrcode.react.json
T

73 lines
3.6 KiB
JSON
Raw 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": "qrcode",
"end": "react",
"curated": true,
"summary": "二维码:value 决定图形、size/color 控呈现,showText 决定是否在图下显示原文。",
"usage": [
"React 端不依赖二维码库:矩阵由 value 的字符哈希做伪随机播种生成,再用 useMemo 缓存(QRCode.jsx:6-8,26-30)。",
"三个定位角是手动画的:place(0,0)、place(0,n-7)、place(n-7,0),并清空角外一圈留白(QRCode.jsx:11-20)。",
"渲染成 SVG:每个黑格一个 <rect>,格边长 size / 25(QRCode.jsx:25,35)。",
"color 直接作为 svg 的 fill(QRCode.jsx:34),showText 打开时在图下渲染 value 原文(QRCode.jsx:37)。",
"value 变化会自动重算矩阵,缓存键是 [value, size](QRCode.jsx:30)。"
],
"bestPractices": [
"这是视觉占位实现而不是可扫描编码器,不要用于真实扫码场景;需要可识别二维码请换用真正的编码方案。",
"size 同时决定 SVG 宽高与格边长,改 size 会重算 memo,不要在同一帧内频繁变更。",
"showText 会把 value 明文展示在图下方,包含敏感串时请关掉(QRCode.jsx:37)。"
],
"apiCarrier": {
"kind": "props",
"note": "React 端的 API 载体是 props 与回调:属性驱动外观(type/size/disabled 等布尔与枚举),交互经 onXxx 回传(如 onChange/onClick/onSelectionChange);没有 v-model,受控组件固定写成 value + onChange,非受控则用 defaultValue。",
"table": [
{
"name": "value",
"type": "string",
"desc": "编码内容,决定生成的矩阵"
},
{
"name": "size",
"type": "number",
"desc": "SVG 边长(像素),默认 200"
},
{
"name": "color",
"type": "string",
"desc": "前景色,作为 svg 的 fill"
},
{
"name": "showText",
"type": "boolean",
"desc": "是否在图下显示 value 原文"
}
]
},
"a11y": [
"生成的 SVG 没有 role=\"img\" 与 <title>,读屏不会播报这是二维码(QRCode.jsx:34)。",
"图下方文本区是唯一可读内容,且受 showText 控制;需要无障碍时建议同时提供 aria-label 描述用途。"
],
"resources": [
{
"file": "frameworks/QRCode.jsx",
"kind": "React(React)",
"desc": "React 端组件实现源码,props 与回调的唯一定义处"
},
{
"file": "frameworks/QRCode.css",
"kind": "样式",
"desc": "该 React 实现依赖的样式文件"
}
],
"exampleIds": [
"qrcode-ex-1"
],
"notes": [
"frameworks/QRCode.jsx:6 中可指到 value(string)——编码内容,决定生成的矩阵",
"frameworks/QRCode.jsx:24 中可指到 size(number)——SVG 边长(像素),默认 200",
"frameworks/QRCode.jsx:24 中可指到 color(string)——前景色,作为 svg 的 fill",
"frameworks/QRCode.jsx:24 中可指到 showText(boolean)——是否在图下显示 value 原文",
"props 解构清单见 frameworks/QRCode.jsx:24-24;本文件 table 只列该端真正消费的属性与回调。",
"过滤口径:事实包 consumedApi 里还包含绑在组件内部节点上的同名处理器(如 onClick/onChange 绑在内部 button、input、checkbox 上,见 frameworks/QRCode.jsx 全文),它们不是对外 props,因此未进 table。",
"table 构成核验:4 行中 4 行是 frameworks/QRCode.jsx 解构出的顶层 props(解构块 frameworks/QRCode.jsx:24-24);本组件 table 全部为顶层 props。"
]
}