3.7 KiB
3.7 KiB
name, description, user-invocable
| name | description | user-invocable |
|---|---|---|
| arco-vue-collapse | Arco Design Vue 折叠面板 Collapse 组件参考。用于 Vue 3、`@arco-design/web-vue`、`<a-collapse>`、属性、事件、插槽、示例和实现细节。 | false |
折叠面板 Collapse
简介
用于将复杂的内容区域分组和隐藏,可折叠或展开。默认可以展开多个面板。
基本用法
<template>
<a-collapse :default-active-key="['1', 2]">
<a-collapse-item header="Beijing Toutiao Technology Co., Ltd." key="1">
<div>Beijing Toutiao Technology Co., Ltd.</div>
<div>Beijing Toutiao Technology Co., Ltd.</div>
<div>Beijing Toutiao Technology Co., Ltd.</div>
</a-collapse-item>
<a-collapse-item header="Beijing Toutiao Technology Co., Ltd." :key="2" disabled>
<div>Beijing Toutiao Technology Co., Ltd.</div>
<div>Beijing Toutiao Technology Co., Ltd.</div>
<div>Beijing Toutiao Technology Co., Ltd.</div>
</a-collapse-item>
<a-collapse-item header="Beijing Toutiao Technology Co., Ltd." key="3">
<div>Beijing Toutiao Technology Co., Ltd.</div>
<div>Beijing Toutiao Technology Co., Ltd.</div>
<div>Beijing Toutiao Technology Co., Ltd.</div>
</a-collapse-item>
</a-collapse>
</template>
API
<collapse> 属性
| 参数名 | 描述 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| active-key (v-model) | 当前展开的面板的 key |
(string | number)[] |
- |
|
| default-active-key | 默认展开的面板的 key (非受控模式) |
(string | number)[] |
[] |
|
| accordion | 是否开启手风琴模式 | boolean |
false |
|
| show-expand-icon | 是否显示展开图标 | boolean |
- |
2.33.0 |
| expand-icon-position | 展开图标显示的位置 | 'left' | 'right' |
'left' |
|
| bordered | 是否显示边框 | boolean |
true |
|
| destroy-on-hide | 是否在隐藏时销毁内容 | boolean |
false |
2.27.0 |
<collapse> 事件
| 事件名 | 描述 | 参数 |
|---|---|---|
| change | 展开的面板发生改变时触发 | activeKey: (string | number)[]ev: Event |
<collapse-item> 属性
| 参数名 | 描述 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| header | 面板的标题 | string |
- |
|
| disabled | 是否禁用 | boolean |
false |
|
| show-expand-icon | 是否显示展开图标 | boolean |
true |
|
| destroy-on-hide | 是否在隐藏时销毁内容 | boolean |
false |
2.27.0 |
<collapse-item> 插槽
| 插槽名 | 描述 | 参数 | 版本 |
|---|---|---|---|
| extra | 额外内容 | - | |
| expand-icon | 展开图标 | active: booleandisabled: booleanposition: 'left' | 'right' |
2.33.0 |
| header | 面板的标题 | - |
常用模式
- 手风琴模式:通过
accordion开启手风琴模式,同时只能打开一个面板。 - 嵌套面板:面板多层嵌套。
- 无边框模式:通过设置
bordered="false"隐藏边框。 - 额外节点:通过
extra可以设置额外节点。extra单击可以以设置stop修饰符,以阻止当前项目展开。 - 展开图标:为展开项自定义展开图标
- 自定义样式:自定义面板样式。
- 展开图标位置:通过
expand-icon-position属性设置展开图标的位置。 - 隐藏时销毁:通过设置
destroy-on-hide可以让面板内容在隐藏时销毁。
最佳实践
- 新代码优先使用 Vue 3、Composition API 和
<script setup lang="ts">。 - 模板属性使用 kebab-case,事件使用
@event-name,插槽使用#slot-name。 - 不要套用 React 专属 API,例如 JSX children、
Component.Sub或Form.useForm。 - 数据展示组件只负责呈现,分页、筛选、排序等远程状态放在业务层维护。
- 大数据量场景优先使用组件自带的分页、虚拟滚动或懒加载能力。