Skip to content

Collapse 折叠面板

通过折叠面板收纳内容区域

基础用法

可同时展开多个面板,面板之间不影响

Title A

headline title

this is content a aaa
Title B
Disabled Title
<script setup>
import { ref } from 'vue'
import Collapse from '@/components/Collapse/Collapse.vue'
import Item from '@/components/Collapse/CollapseItem.vue'
const openedValue = ref(['a'])
</script>
<template>
  <div class="basic block">
    <Collapse v-model="openedValue">
      <Item name="a" title="Title A">
        <h1>headline title</h1>
        <div> this is content a aaa </div>
      </Item>
      <Item name="b" title="Title B">
        <div> this is bbbbb test </div>
      </Item>
      <Item name="c" title="Disabled Title" disabled>
        <div> this is cccc test </div>
      </Item>
    </Collapse>
  </div>
</template>

手风琴效果

每次只能展开一个面板

通过 accordion 属性来设置是否以手风琴模式显示。

Title A

headline title

this is content a aaa
Title B
Title C
<script setup>
import { ref } from 'vue'
import Collapse from '@/components/Collapse/Collapse.vue'
import Item from '@/components/Collapse/CollapseItem.vue'
const openedValue = ref('a')
</script>
<template>
  <div class="basic block">
    <Collapse v-model="openedValue" accordion>
      <Item name="a" title="Title A">
        <h1>headline title</h1>
        <div> this is content a aaa </div>
      </Item>
      <Item name="b" title="Title B">
        <div> this is bbbbb test </div>
      </Item>
      <Item name="c" title="Title C">
        <div> this is cccc test </div>
      </Item>
    </Collapse>
  </div>
</template>

React 用法

tsx
import { useState } from 'react'
import { Collapse, CollapseItem } from '@bobocn/element/react'
import '@bobocn/element/style.css'

// 基础用法
function App() {
  const [activeNames, setActiveNames] = useState(['1'])

  return (
    <Collapse
      modelValue={activeNames}
      onChange={(val) => setActiveNames(val)}
    >
      <CollapseItem name="1" title="面板一">
        内容一
      </CollapseItem>
      <CollapseItem name="2" title="面板二">
        内容二
      </CollapseItem>
      <CollapseItem name="3" title="面板三" disabled>
        内容三(禁用)
      </CollapseItem>
    </Collapse>
  )
}

// 手风琴模式
<Collapse modelValue={activeNames} accordion onChange={setActiveNames}>
  <CollapseItem name="1" title="面板一">内容一</CollapseItem>
  <CollapseItem name="2" title="面板二">内容二</CollapseItem>
</Collapse>

API

Collapse 属性 (Attributes)

属性名说明类型默认值
modelValue / v-model当前激活的面板string[]
accordion是否手风琴模式booleanfalse

Collapse 事件 (Events)

事件名说明回调参数
update:modelValue激活面板改变时触发(value: string[]) => void
change激活面板改变时触发(value: string[]) => void

Collapse 插槽 (Slots)

插槽名说明
defaultCollapseItem 组件

CollapseItem 属性 (Attributes)

属性名说明类型默认值
name面板唯一标识string
title面板标题string
disabled是否禁用booleanfalse

CollapseItem 插槽 (Slots)

插槽名说明
default面板内容
title自定义标题内容

基于 MIT 许可发布