99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Vant3 Checkbox復選框

2021-09-07 15:02 更新

介紹

在一組備選項中進行多選。

實例演示

引入

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

import { createApp } from 'vue';
import { Checkbox, CheckboxGroup } from 'vant';

const app = createApp();
app.use(Checkbox);
app.use(CheckboxGroup);

代碼演示

基礎用法

通過 v-model 綁定復選框的勾選狀態(tài)。

基礎用法

<van-checkbox v-model="checked">復選框</van-checkbox>
import { ref } from 'vue';

export default {
  setup() {
    const checked = ref(true);
    return { checked };
  },
};

禁用狀態(tài)

通過設置 disabled 屬性可以禁用復選框。

禁用狀態(tài)

<van-checkbox v-model="checked" disabled>復選框</van-checkbox>

自定義形狀

將 shape 屬性設置為 square,復選框的形狀會變成方形。

自定義形狀

<van-checkbox v-model="checked" shape="square">復選框</van-checkbox>

自定義顏色

通過 checked-color 屬性設置選中狀態(tài)的圖標顏色。

自定義顏色

<van-checkbox v-model="checked" checked-color="#ee0a24">復選框</van-checkbox>

自定義大小

通過 icon-size 屬性可以自定義圖標的大小。

自定義大小

<van-checkbox v-model="checked" icon-size="24px">復選框</van-checkbox>

自定義圖標

通過 icon 插槽自定義圖標,可以通過 slotProps 判斷是否為選中狀態(tài).

自定義圖標

<van-checkbox v-model="checked">
  自定義圖標
  <template #icon="props">
    <img class="img-icon" :src="props.checked ? activeIcon : inactiveIcon" />
  </template>
</van-checkbox>

<style>
  .img-icon {
    height: 20px;
  }
</style>
import { ref } from 'vue';

export default {
  setup() {
    const checked = ref(true);
    return {
      checked,
      activeIcon: 'https://img.yzcdn.cn/vant/user-active.png',
      inactiveIcon: 'https://img.yzcdn.cn/vant/user-inactive.png',
    };
  },
};

禁用文本點擊

設置 label-disabled 屬性后,點擊圖標以外的內容不會觸發(fā)復選框切換。

禁用文本點擊

<van-checkbox v-model="checked" label-disabled>復選框</van-checkbox>

復選框組

復選框可以與復選框組一起使用,復選框組通過 v-model 數組綁定復選框的勾選狀態(tài)。

復選框組

<van-checkbox-group v-model="checked">
  <van-checkbox name="a">復選框 a</van-checkbox>
  <van-checkbox name="b">復選框 b</van-checkbox>
</van-checkbox-group>
import { ref } from 'vue';

export default {
  setup() {
    const checked = ref(['a', 'b']);
    return { checked };
  },
};

水平排列

將 direction 屬性設置為 horizontal 后,復選框組會變成水平排列。

水平排列

<van-checkbox-group v-model="checked" direction="horizontal">
  <van-checkbox name="a">復選框 a</van-checkbox>
  <van-checkbox name="b">復選框 b</van-checkbox>
</van-checkbox-group>
import { ref } from 'vue';

export default {
  setup() {
    const checked = ref([]);
    return { checked };
  },
};

限制最大可選數

通過 max 屬性可以限制復選框組的最大可選數。

限制最大可選數

<van-checkbox-group v-model="checked" :max="2">
  <van-checkbox name="a">復選框 a</van-checkbox>
  <van-checkbox name="b">復選框 b</van-checkbox>
  <van-checkbox name="c">復選框 c</van-checkbox>
</van-checkbox-group>

全選與反選

通過 CheckboxGroup 實例上的 toggleAll 方法可以實現全選與反選。

全選與反選

<van-checkbox-group v-model="checked" ref="checkboxGroup">
  <van-checkbox name="a">復選框 a</van-checkbox>
  <van-checkbox name="b">復選框 b</van-checkbox>
  <van-checkbox name="c">復選框 c</van-checkbox>
</van-checkbox-group>

<van-button type="primary" @click="checkAll">全選</van-button>
<van-button type="primary" @click="toggleAll">反選</van-button>
import { ref } from 'vue';

export default {
  setup() {
    const checked = ref([]);
    const checkboxGroup = ref(null);

    const checkAll = () => {
      checkboxGroup.value.toggleAll(true);
    }
    const toggleAll = () => {
      checkboxGroup.value.toggleAll();
    },

    return {
      checked,
      checkAll,
      toggleAll,
      checkboxGroup,
    };
  },
};

搭配單元格組件使用

此時你需要再引入 Cell 和 CellGroup 組件,并通過 Checkbox 實例上的 toggle 方法觸發(fā)切換。

搭配單元格使用

<van-checkbox-group v-model="checked">
  <van-cell-group>
    <van-cell
      v-for="(item, index) in list"
      clickable
      :key="item"
      :title="`復選框 ${item}`"
      @click="toggle(index)"
    >
      <template #right-icon>
        <van-checkbox
          :name="item"
          :ref="el => checkboxRefs[index] = el"
          @click.stop
        />
      </template>
    </van-cell>
  </van-cell-group>
</van-checkbox-group>
import { ref, onBeforeUpdate } from 'vue';

export default {
  setup() {
    const checked = ref([]);
    const checkboxRefs = ref([]);
    const toggle = (index) => {
      checkboxRefs.value[index].toggle();
    };

    onBeforeUpdate(() => {
      checkboxRefs.value = [];
    });

    return {
      list: ['a', 'b'],
      toggle,
      checked,
      checkboxRefs,
    };
  },
};

API

Checkbox Props

參數 說明 類型 默認值
v-model 是否為選中狀態(tài) boolean false
name 標識符 any -
shape 形狀,可選值為 square string round
disabled 是否禁用復選框 boolean false
label-disabled 是否禁用復選框文本點擊 boolean false
label-position 文本位置,可選值為 left string right
icon-size 圖標大小,默認單位為 px number | string 20px
checked-color 選中狀態(tài)顏色 string #1989fa
bind-group 是否與復選框組綁定 boolean true

CheckboxGroup Props

參數 說明 類型 默認值
v-model 所有選中項的標識符 any[] -
disabled 是否禁用所有復選框 boolean false
max 最大可選數,0 為無限制 number | string 0
direction 排列方向,可選值為 horizontal string vertical
icon-size 所有復選框的圖標大小,默認單位為 px number | string 20px
checked-color 所有復選框的選中狀態(tài)顏色 string #1989fa

Checkbox Events

事件名 說明 回調參數
change 當綁定值變化時觸發(fā)的事件 checked: boolean
click 點擊復選框時觸發(fā) event: MouseEvent

CheckboxGroup Events

事件名 說明 回調參數
change 當綁定值變化時觸發(fā)的事件 names: any[]

Checkbox Slots

名稱 說明 參數
default 自定義文本 -
icon 自定義圖標 { checked: boolean, disabled: boolean }

CheckboxGroup 方法

通過 ref 可以獲取到 CheckboxGroup 實例并調用實例方法,詳見組件實例方法。

方法名 說明 參數 返回值
toggleAll 切換所有復選框,傳 true 為選中,false 為取消選中,不傳參為取反 options?: boolean | object -

toggleAll 方法示例

const { checkboxGroup } = this.$refs;

// 全部反選
checkboxGroup.toggleAll();
// 全部選中
checkboxGroup.toggleAll(true);
// 全部取消
checkboxGroup.toggleAll(false);

// 全部反選,并跳過禁用的復選框
checkboxGroup.toggleAll({
  skipDisabled: true,
});
// 全部選中,并跳過禁用的復選框
checkboxGroup.toggleAll({
  checked: true,
  skipDisabled: true,
});

Checkbox 方法

通過 ref 可以獲取到 Checkbox 實例并調用實例方法,詳見組件實例方法。

方法名 說明 參數 返回值
toggle 切換選中狀態(tài),傳 true 為選中,false 為取消選中,不傳參為取反 checked?: boolean -

主題定制

樣式變量

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

名稱 默認值 描述
--van-checkbox-size 20px -
--van-checkbox-border-color var(--van-gray-5) -
--van-checkbox-transition-duration var(--van-animation-duration-fast) -
--van-checkbox-label-margin var(--van-padding-xs) -
--van-checkbox-label-color var(--van-text-color) -
--van-checkbox-checked-icon-color var(--van-primary-color) -
--van-checkbox-disabled-icon-color var(--van-gray-5) -
--van-checkbox-disabled-label-color var(--van-gray-5) -
--van-checkbox-disabled-background-color var(--van-border-color) -


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號