Collapse
Collapse (접이식 패널)
출처: 문서
본문
Collapse
Collapse를 사용해서 내용을 저장해요.
기본 사용법
여러 패널을 펼칠 수 있어요.
import { ref } from 'vue'
import type { CollapseModelValue } from 'element-plus'
const activeNames = ref(['1'])
const handleChange = (val: CollapseModelValue) => {
console.log(val)
}
아코디언
아코디언 모드에서는 한 번에 하나의 패널만 펼칠 수 있어요.
accordion 속성을 사용해서 아코디언 모드를 활성화해요.
import { ref } from 'vue'
const activeName = ref('1')
커스텀 제목
title 속성을 사용하는 것 외에 named slot으로 패널 제목을 커스터마이즈할 수 있어요. 이렇게 하면 아이콘 같은 커스텀 내용을 추가할 수 있어요.
TIP 2.9.10부터
title슬롯은 현재 collapse 항목이 활성 상태인지 나타내는isActive속성을 제공해요.
import { InfoFilled } from '@element-plus/icons-vue'
.title-wrapper {
display: flex;
align-items: center;
gap: 4px;
}
.title-wrapper.is-active {
color: var(--el-color-primary);
}
커스텀 아이콘 2.8.3
icon 속성을 사용하는 것 외에 named slot으로 패널 항목의 아이콘을 커스터마이즈할 수 있어요. 이렇게 하면 커스텀 내용을 추가할 수 있어요.
import { ref } from 'vue'
import { CaretRight } from '@element-plus/icons-vue'
import type { CollapseModelValue } from 'element-plus'
const activeNames = ref(['1'])
const handleChange = (val: CollapseModelValue) => {
console.log(val)
}
.icon-ele {
margin: 0 8px 0 auto;
color: #409eff;
}
커스텀 아이콘 위치 2.9.10
expand-icon-position 속성을 사용해서 아이콘 위치를 커스터마이즈할 수 있어요.
import { ref } from 'vue'
import type { CollapseIconPositionType } from 'element-plus'
const position = ref('left')
접기 방지 2.9.11
before-collapse 속성을 설정해요. false를 반환하거나 Promise가 반환된 뒤 거부되면 접기가 중단돼요.
import { ref } from 'vue'
const before = ref(true)
const activeNames = ref(['1'])
const loading = ref(false)
const beforeCollapse = (): Promise => {
loading.value = true
return new Promise((resolve) => {
setTimeout(() => {
loading.value = false
return resolve(before.value)
}, 1000)
})
}
Collapse API
Collapse Attributes
| Name | Description | Type | Default |
|---|---|---|---|
| model-value / v-model | 현재 활성 패널, 아코디언 모드에서는 string 타입, 그 외에는 array | string / array | [] |
| accordion | 아코디언 모드 활성화 여부 | boolean | false |
| expand-icon-position 2.9.10 | 확장 아이콘 위치 설정 | enum | right |
| before-collapse 2.9.11 | 접기 상태가 바뀌기 전의 before-collapse 훅. false를 반환하거나 Promise가 반환된 뒤 거부되면 접기가 중단돼요 | Function | — |
Collapse Events
| Name | Description | Type |
|---|---|---|
| change | 활성 패널이 바뀔 때 실행돼요. 파라미터 타입은 아코디언 모드에서 string, 그 외에는 array | Function |
Collapse Slots
| Name | Description | Subtags |
|---|---|---|
| default | 기본 내용을 커스터마이즈해요 | Collapse Item |
Collapse Exposes
| Name | Description | Type |
|---|---|---|
| activeNames | 현재 활성 패널 이름 | object |
| setActiveNames | 활성 패널 이름 설정 | Function |
Collapse Item API
Collapse Item Attributes
| Name | Description | Type | Default |
|---|---|---|---|
| name | 패널의 고유 식별자 | string / number | — |
| title | 패널의 제목 | string | '' |
| icon 2.8.3 | collapse 항목의 아이콘 | string / Component | ArrowRight |
| disabled | collapse 항목 비활성화 | boolean | false |
Collapse Item Slot
| Name | Description | Type |
|---|---|---|
| default | Collapse Item의 내용 | — |
| title | Collapse Item 제목의 내용 | object |
| icon 2.8.3 | Collapse Item 아이콘의 내용 | object |
Collapse Item Exposes
| Name | Description | Type |
|---|---|---|
| isActive | 현재 collapse 항목이 활성 상태인지 여부 | object |