{ "slug": "radio", "curated": true, "mode": "scenarios", "examples": [ { "id": "radio-ex-1", "title": "默认与常用变体", "titleSrc": "demo", "desc": "", "html": "
\n
\n \n \n
\n
", "preview": { "show": [ [ 0, 2 ] ], "hide": [ [ 1 ], [ 0, 0 ], [ 0, 1 ], [ 0, 3 ], [ 0, 2, 0 ] ], "mode": "scenarios" }, "previewSafe": true, "previewUnsafeReasons": [], "source": "curated", "code": { "html": "
\n \n \n
", "jsx": "import { useState } from 'react';\nimport { KoleRadio } from 'kole-ui/react';\n\nconst options = [\n { label: '选项 A', value: 'a' },\n { label: '选项 B', value: 'b' }\n];\n\nexport default function Demo() {\n const [value, setValue] = useState('a');\n return ;\n}", "vue3": "\n\n", "vue2": "\n\n", "tsx": "import { useState } from 'react';\nimport { KoleRadio } from 'kole-ui/react';\n\ninterface RadioOption {\n label: string;\n value: string;\n}\n\nconst options: ReadonlyArray = [\n { label: '选项 A', value: 'a' },\n { label: '选项 B', value: 'b' },\n];\n\nexport default function RadioDefaultDemo(): JSX.Element {\n const [value, setValue] = useState('a');\n return ;\n}", "vue3ts": "\n\n", "vue2ts": "\n\n" }, "notes": [ "依据 frameworks/Radio.html 第 5 行 body 第 1 个 .demo-block:name=\"kole-radio-demo\" 的两个 .kole-radio-option,value=\"a\" 上带 checked、value=\"b\" 不带 —— 即 options 两项、modelValue 初始 \"a\"。", "prop 名见 frameworks/Radio.jsx 第 4 行参数表(modelValue / options / disabled)与 frameworks/Radio.vue3.vue 第 7-11 行 defineProps。Vue2 端(frameworks/Radio.vue2.vue 第 8-12、15 行)prop 名同为 modelValue,但只 emit input,故 Vue2 写 :model-value + @input 显式回写,不用 v-model。", "TS 形态依据 TS-VARIANTS.md:tsx 用 useState + interface RadioOption;vue3ts/vue2ts 用 \n\n", "vue2": "\n\n", "tsx": "import { KoleRadio } from 'kole-ui/react';\n\ninterface RadioOption {\n label: string;\n value: string;\n}\n\nconst options: ReadonlyArray = [\n { label: '选项 A', value: 'a' },\n { label: '选项 B', value: 'b' },\n];\n\nconst selected: string = 'b';\n\n// 禁用态:整组不可交互(Radio.jsx 的 disabled prop,输入框带 disabled)\nexport default function RadioDisabledDemo(): JSX.Element {\n return ;\n}", "vue3ts": "\n\n", "vue2ts": "\n\n" }, "notes": [ "依据 frameworks/Radio.html 第 5 行 body 第 2 个 .demo-block「状态与使用场景」:块内只有 .kole-radio-surface 说明文案与 .kole-radio-desc,没有可映射的控件标记;该组件的 API 表(site/details/radio.json contract.dims 为空,frameworks/Radio.jsx 第 4 行参数表)在 options / modelValue 之外只剩 disabled 一个可用 prop。", "因此本示例给出 disabled 禁用态调用:整组输入框带 disabled(Radio.jsx 第 8 行),并与示例 1 的受控写法区分。" ] } ] }