--- name: arco-vue-cascader description: "Arco Design Vue 级联选择 Cascader 组件参考。用于 Vue 3、`@arco-design/web-vue`、``、属性、事件、插槽、示例和实现细节。" user-invocable: false --- # 级联选择 Cascader ## 简介 级联选择器的基本用法。 ## 基本用法 ```vue ``` ## API ### `` 属性 |参数名|描述|类型|默认值|版本| |---|---|---|:---:|:---| |path-mode|绑定值是否为路径|`boolean`|`false`|| |multiple|是否为多选状态(多选模式默认开启搜索)|`boolean`|`false`|| |model-value **(v-model)**|绑定值|`string\| number\| Record\| ( \| string \| number \| Record \| (string \| number \| Record)[] )[]\| undefined`|`-`|| |default-value|默认值(非受控状态)|`string\| number\| Record\| ( \| string \| number \| Record \| (string \| number \| Record)[] )[]\| undefined`|`'' \| undefined \| []`|| |options|级联选择器的选项|`CascaderOption[]`|`[]`|| |disabled|是否禁用|`boolean`|`false`|| |error|是否为错误状态|`boolean`|`false`|| |size|选择框的大小|`'mini' \| 'small' \| 'medium' \| 'large'`|`'medium'`|| |allow-search|是否允许搜索|`boolean`|`false (single) \| true (multiple)`|| |allow-clear|是否允许清除|`boolean`|`false`|| |input-value **(v-model)**|输入框的值|`string`|`-`|| |default-input-value|输入框的默认值(非受控状态)|`string`|`''`|| > 仅列出常用项,低频属性按需查阅官方 API。 ### `` 事件 |事件名|描述|参数| |---|---|---| |change|选中值改变时触发|value: `string \| number \| (string \| number \| (string \| number)[])[] \| undefined`| |input-value-change|输入值改变时触发|value: `string`| |clear|点击清除按钮时触发|-| |search|用户搜索时触发|value: `string`| |popup-visible-change|下拉框的显示状态改变时触发|visible: `boolean`| |focus|获得焦点时触发|ev: `FocusEvent`| |blur|失去焦点时触发|ev: `FocusEvent`| ### `` 插槽 |插槽名|描述|参数|版本| |---|:---:|---|:---| |label|选择框的显示内容|data: `CascaderOption`|2.18.0| |prefix|前缀元素|-|2.23.0| |arrow-icon|选择框的箭头图标|-|2.16.0| |loading-icon|选择框的加载中图标|-|2.16.0| |search-icon|选择框的搜索图标|-|2.16.0| |empty|选项为空时的显示内容|-|2.23.0| |option|选项内容|data: `CascaderOption`|2.18.0| ### `` 属性 |参数名|描述|类型|默认值|版本| |---|---|---|:---:|:---| |path-mode|绑定值是否为路径|`boolean`|`false`|| |multiple|是否为多选状态(多选模式默认开启搜索)|`boolean`|`false`|| |model-value **(v-model)**|绑定值|`string\| number\| Record\| ( \| string \| number \| Record \| (string \| number \| Record)[] )[]\| undefined`|`-`|| |default-value|默认值(非受控状态)|`string\| number\| Record\| ( \| string \| number \| Record \| (string \| number \| Record)[] )[]\| undefined`|`'' \| undefined \| []`|| |options|级联选择器的选项|`CascaderOption[]`|`[]`|| |expand-trigger|展开下一级的触发方式|`string`|`'click'`|| |check-strictly|是否开启严格选择模式|`boolean`|`false`|| |load-more|数据懒加载函数,传入时开启懒加载功能|`( option: CascaderOption, done: (children?: CascaderOption[]) => void) => void`|`-`|2.13.0| |field-names|自定义 `CascaderOption` 中的字段|`CascaderFieldNames`|`-`|2.22.0| |value-key|用于确定选项键值的属性名|`string`|`'value'`|2.29.0| |expand-child|是否展开子菜单|`boolean`|`false`|2.29.0| ### `` 事件 |事件名|描述|参数| |---|---|---| |change|选中值改变时触发|value: `string \| number \| (string \| number \| (string \| number)[])[] \| undefined`| ### `` 插槽 |插槽名|描述|参数|版本| |---|:---:|---|:---| |empty|选项为空时的显示内容|-|2.23.0| ### CascaderOption |参数名|描述|类型|默认值|版本| |---|---|---|:---:|:---| |value|选项值,2.29.0 版本支持对象|`string \| number \| Record`|`-`|| |label|选项文本|`string`|`-`|| |render|自定义渲染|`RenderFunction`|`-`|| |disabled|是否禁用|`boolean`|`false`|| |tagProps|展示的标签属性|`TagProps`|`-`|2.8.0| |children|下一级选项|`CascaderOption[]`|`-`|| |isLeaf|是否是叶子节点|`boolean`|`false`|| ## 常用模式 - **基本使用**:级联选择器的基本用法。 - **允许清除**:允许清除。 - **禁用选项**:指定 `option` 的 `disabled` 为 `true`,可以禁用该选项。 - **自定义输入框的展示值**:利用 `formatLabel` 对显示的内容进行自定义处理。 - **多选模式**:通过设置 `multiple` 开启多选模式。 - **严格选择模式**:设置属性 `check-strictly`,开启严格选择模式,点击任何结点都可以选择。多选时将会解除父子节点的关联。 - **加载中**:选择框和下拉菜单显示加载中状态。 - **子选项懒加载**:通过 `load-more` 属性可以开启数据懒加载功能。开启数据懒加载功能后,需要在叶子节点标注 `isLeaf: true`,没有标注且没有 `children` 属性的节点会认为需要懒加载处理。`load-more` 属性有提供 `done` 函数进行回调,可以在回调中传入懒加载的子数据。 ## 最佳实践 - 新代码优先使用 Vue 3、Composition API 和 `