Vant3 Collapse 折疊面板

2021-09-14 11:48 更新

介紹

將一組內(nèi)容放置在多個折疊面板中,點擊面板的標(biāo)題可以展開或收縮其內(nèi)容。

實例演示

引入

通過以下方式來全局注冊組件,更多注冊方式請參考組件注冊。

import { createApp } from 'vue';
import { Collapse, CollapseItem } from 'vant';

const app = createApp();
app.use(Collapse);
app.use(CollapseItem);

代碼演示

基礎(chǔ)用法

通過 v-model 控制展開的面板列表,activeNames 為數(shù)組格式。

<van-collapse v-model="activeNames">
  <van-collapse-item title="標(biāo)題1" name="1">內(nèi)容</van-collapse-item>
  <van-collapse-item title="標(biāo)題2" name="2">內(nèi)容</van-collapse-item>
  <van-collapse-item title="標(biāo)題3" name="3">內(nèi)容</van-collapse-item>
</van-collapse>
import { ref } from 'vue';

export default {
  setup() {
    const activeNames = ref(['1']);
    return { activeNames };
  },
};

手風(fēng)琴

通過 accordion 可以設(shè)置為手風(fēng)琴模式,最多展開一個面板,此時 activeName 為字符串格式。

<van-collapse v-model="activeName" accordion>
  <van-collapse-item title="標(biāo)題1" name="1">內(nèi)容</van-collapse-item>
  <van-collapse-item title="標(biāo)題2" name="2">內(nèi)容</van-collapse-item>
  <van-collapse-item title="標(biāo)題3" name="3">內(nèi)容</van-collapse-item>
</van-collapse>
import { ref } from 'vue';

export default {
  setup() {
    const activeName = ref('1');
    return { activeName };
  },
};

禁用狀態(tài)

通過 disabled 屬性來禁用單個面板。

<van-collapse v-model="activeNames">
  <van-collapse-item title="標(biāo)題1" name="1">內(nèi)容</van-collapse-item>
  <van-collapse-item title="標(biāo)題2" name="2" disabled>內(nèi)容</van-collapse-item>
  <van-collapse-item title="標(biāo)題3" name="3" disabled>內(nèi)容</van-collapse-item>
</van-collapse>

自定義標(biāo)題內(nèi)容

通過 title 插槽可以自定義標(biāo)題欄的內(nèi)容。

<van-collapse v-model="activeNames">
  <van-collapse-item name="1">
    <template #title>
      <div>標(biāo)題1 <van-icon name="question-o" /></div>
    </template>
    內(nèi)容
  </van-collapse-item>
  <van-collapse-item title="標(biāo)題2" name="2" icon="shop-o">
    內(nèi)容
  </van-collapse-item>
</van-collapse>
import { ref } from 'vue';

export default {
  setup() {
    const activeNames = ref(['1']);
    return { activeNames };
  },
};

API

Collapse Props

參數(shù) 說明 類型 默認值
v-model 當(dāng)前展開面板的 name 手風(fēng)琴模式:number | string
非手風(fēng)琴模式:(number | string)[]
-
accordion 是否開啟手風(fēng)琴模式 boolean false
border 是否顯示外邊框 boolean true

Collapse Events

事件名 說明 回調(diào)參數(shù)
change 切換面板時觸發(fā) activeNames: 類型與 v-model 綁定的值一致

CollapseItem Props

參數(shù) 說明 類型 默認值
name 唯一標(biāo)識符,默認為索引值 number | string index
icon 標(biāo)題欄左側(cè)圖標(biāo)名稱或圖片鏈接 string -
size 標(biāo)題欄大小,可選值為 large string -
title 標(biāo)題欄左側(cè)內(nèi)容 number | string -
value 標(biāo)題欄右側(cè)內(nèi)容 number | string -
label 標(biāo)題欄描述信息 number | string -
border 是否顯示內(nèi)邊框 boolean true
is-link 是否展示標(biāo)題欄右側(cè)箭頭并開啟點擊反饋 boolean true
disabled 是否禁用面板 boolean false
readonly v3.0.12 是否為只讀狀態(tài),只讀狀態(tài)下無法操作面板 boolean false
title-class 左側(cè)標(biāo)題額外類名 string -
value-class 右側(cè)內(nèi)容額外類名 string -
label-class 描述信息額外類名 string -

CollapseItem 方法

通過 ref 可以獲取到 CollapseItem 實例并調(diào)用實例方法,詳見組件實例方法。

方法名 說明 參數(shù) 返回值
toggle 切換面試展開狀態(tài),傳 true 為展開,false 為收起,不傳參為切換 expand?: boolean -

類型定義

通過 CollapseItemInstance 獲取 CollapseItem 實例的類型定義。

import { ref } from 'vue';
import type { CollapseItemInstance } from 'vant';

const collapseItemRef = ref<CollapseItemInstance>();

collapseItemRef.value?.toggle();

CollapseItem Slots

名稱 說明
default 面板內(nèi)容
title 自定義標(biāo)題欄左側(cè)內(nèi)容
value 自定義標(biāo)題欄右側(cè)內(nèi)容
label v3.1.1 自定義標(biāo)題欄描述信息
icon 自定義標(biāo)題欄左側(cè)圖標(biāo)
right-icon 自定義標(biāo)題欄右側(cè)圖標(biāo)

樣式變量

組件提供了下列 CSS 變量,可用于自定義樣式,使用方法請參考 ConfigProvider 組件。

名稱 默認值 描述
--van-collapse-item-transition-duration var(--van-animation-duration-base) -
--van-collapse-item-content-padding var(--van-padding-sm) var(--van-padding-md) -
--van-collapse-item-content-font-size var(--van-font-size-md) -
--van-collapse-item-content-line-height 1.5 -
--van-collapse-item-content-text-color var(--van-gray-6) -
--van-collapse-item-content-background-color var(--van-white) -
--van-collapse-item-title-disabled-color var(--van-gray-5) -


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號