可编辑
Alpha<script setup lang="ts">
import { EditableArea, EditableCancelTrigger, EditableEditTrigger, EditableInput, EditablePreview, EditableRoot, EditableSubmitTrigger } from 'radix-vue'
</script>
<template>
<div class="w-[250px]">
<EditableRoot
v-slot="{ isEditing }"
default-value="Click to edit 'Radix Vue'"
placeholder="Enter text..."
class="flex flex-col gap-4"
auto-resize
>
<EditableArea class="text-white w-[250px]">
<EditablePreview />
<EditableInput class="w-full placeholder:text-white" />
</EditableArea>
<EditableEditTrigger
v-if="!isEditing"
class="w-max inline-flex items-center justify-center rounded font-medium text-[15px] px-[15px] leading-[35px] h-[35px] bg-white text-green11 shadow-[0_2px_10px] shadow-blackA7 outline-none hover:bg-mauve3 focus:shadow-[0_0_0_2px] focus:shadow-black"
/>
<div
v-else
class="flex gap-4"
>
<EditableSubmitTrigger
class="inline-flex items-center justify-center rounded font-medium text-[15px] px-[15px] leading-[35px] h-[35px] bg-white text-green11 shadow-[0_2px_10px] shadow-blackA7 outline-none hover:bg-mauve3 focus:shadow-[0_0_0_2px] focus:shadow-black"
/>
<EditableCancelTrigger
class="inline-flex items-center justify-center rounded font-medium text-[15px] px-[15px] leading-[35px] h-[35px] bg-red9 text-white shadow-[0_2px_10px] shadow-blackA7 outline-none hover:bg-red10 focus:shadow-[0_0_0_2px] focus:shadow-black"
/>
</div>
</EditableRoot>
</div>
</template>
特性
- 完整的键盘导航
- 可以是受控或不受控的
- 焦点得到完全管理
安装
从命令行安装组件。
$ npm add radix-vue
解剖
导入所有部分并将它们组合在一起。
<script setup>
import {
EditableArea,
EditableCancelTrigger,
EditableEditTrigger,
EditableInput,
EditablePreview,
EditableRoot,
EditableSubmitTrigger
} from 'radix-vue'
</script>
<template>
<EditableRoot>
<EditableArea>
<EditablePreview />
<EditableInput />
</EditableArea>
<EditableEditTrigger />
<EditableSubmitTrigger />
<EditableCancelTrigger />
</EditableRoot>
</template>
API 参考
根
包含可编辑组件的所有部分。
道具 | 默认值 | 类型 |
---|---|---|
activationMode | 'focus' | 'dblclick' | 'focus' | 'none' 可编辑字段的激活事件 |
as | 'div' | AsTag | Component 此组件应呈现为的元素或组件。 可以被 |
asChild | boolean 将默认呈现的元素更改为作为子元素传递的元素,合并它们的属性和行为。 阅读我们的 组合 指南以了解更多详细信息。 | |
autoResize | false | boolean 可编辑字段是否应自动调整大小 |
defaultValue | string 可编辑字段的默认值 | |
dir | 'ltr' | 'rtl' 日历的阅读方向(如果适用)。 | |
disabled | false | boolean 可编辑字段是否被禁用 |
id | string 字段的 ID | |
maxLength | number 允许的最大字符数 | |
modelValue | string 可编辑字段的值 | |
name | string 字段的名称 | |
placeholder | 'Enter text...' | string | { edit: string; preview: string; } 可编辑字段的占位符 |
readonly | boolean 可编辑字段是否为只读 | |
required | false | boolean 当为 |
selectOnFocus | false | boolean 是否在输入获得焦点时选择文本。 |
startWithEditMode | boolean 是否以激活的编辑模式启动 | |
submitMode | 'blur' | 'blur' | 'none' | 'enter' | 'both' 可编辑字段的提交事件 |
发射 | 有效负载 |
---|---|
submit | [value: string] 当提交值时调用的事件处理程序 |
update:modelValue | [value: string] 每当模型值发生变化时调用的事件处理程序 |
update:state | [state: 'cancel' | 'submit' | 'edit'] 当可编辑字段改变状态时调用的事件处理程序 |
插槽(默认) | 有效负载 |
---|---|
isEditing | boolean 可编辑字段是否处于编辑模式 |
modelValue | string | undefined 可编辑字段的值 |
isEmpty | boolean 可编辑字段是否为空 |
submit |
用于提交可编辑值的功能 |
cancel |
用于取消可编辑值的功能 |
edit |
用于将可编辑设置为编辑模式的功能 |
方法 | 类型 |
---|---|
submit | () => void 用于提交可编辑值的功能 |
cancel | () => void 用于取消可编辑值的功能 |
edit | () => void 用于将可编辑设置为编辑模式的功能 |
区域
包含可编辑组件的文本部分。
道具 | 默认值 | 类型 |
---|---|---|
as | 'div' | AsTag | Component 此组件应呈现为的元素或组件。 可以被 |
asChild | boolean 将默认呈现的元素更改为作为子元素传递的元素,合并它们的属性和行为。 阅读我们的 组合 指南以了解更多详细信息。 |
数据属性 | 价值 |
---|---|
[data-readonly] | 当为只读时存在 |
[data-disabled] | 当被禁用时存在 |
[data-placeholder-shown] | 当显示预览时存在 |
[data-empty] | 当输入为空时存在 |
[data-focus] | 当可编辑字段获得焦点时存在。 将在 [data-focused] 的支持下弃用 |
[data-focused] | 当可编辑字段获得焦点时存在 |
输入
包含可编辑组件的输入。
道具 | 默认值 | 类型 |
---|---|---|
as | 'input' | AsTag | Component 此组件应呈现为的元素或组件。 可以被 |
asChild | boolean 将默认呈现的元素更改为作为子元素传递的元素,合并它们的属性和行为。 阅读我们的 组合 指南以了解更多详细信息。 |
数据属性 | 价值 |
---|---|
[data-readonly] | 当为只读时存在 |
[data-disabled] | 当被禁用时存在 |
预览
包含可编辑组件的预览。
道具 | 默认值 | 类型 |
---|---|---|
as | 'span' | AsTag | Component 此组件应呈现为的元素或组件。 可以被 |
asChild | boolean 将默认呈现的元素更改为作为子元素传递的元素,合并它们的属性和行为。 阅读我们的 组合 指南以了解更多详细信息。 |
编辑触发器
包含可编辑组件的编辑触发器。
道具 | 默认值 | 类型 |
---|---|---|
as | 'button' | AsTag | Component 此组件应呈现为的元素或组件。 可以被 |
asChild | boolean 将默认呈现的元素更改为作为子元素传递的元素,合并它们的属性和行为。 阅读我们的 组合 指南以了解更多详细信息。 |
提交触发器
包含可编辑组件的提交触发器。
道具 | 默认值 | 类型 |
---|---|---|
as | 'button' | AsTag | Component 此组件应呈现为的元素或组件。 可以被 |
asChild | boolean 将默认呈现的元素更改为作为子元素传递的元素,合并它们的属性和行为。 阅读我们的 组合 指南以了解更多详细信息。 |
取消触发器
包含可编辑组件的取消触发器。
道具 | 默认值 | 类型 |
---|---|---|
as | 'button' | AsTag | Component 此组件应呈现为的元素或组件。 可以被 |
asChild | boolean 将默认呈现的元素更改为作为子元素传递的元素,合并它们的属性和行为。 阅读我们的 组合 指南以了解更多详细信息。 |
无障碍性
键盘交互
关键 | 描述 |
---|---|
Tab | 当焦点移至可编辑字段时,如果 activation-mode 设置为 focus,则切换到可编辑模式。 |
Enter |
如果 submit-mode 设置为enter 或both ,则提交更改。
|
Escape | 当焦点在可编辑字段上时,它会取消更改。 |