拜读及分析Element源码-checkbox多选框组件篇

本文深入分析了Element UI的Checkbox组件,包括Checkbox Group、Checkbox和Checkbox Button。内容涵盖组件结构、script部分的逻辑,如接收form组件注入、监听value变化、props属性、无障碍属性的应用以及变更事件的处理。此外,还讨论了各组件在不同场景下的应用,如多选和按钮样式的多选。
摘要由CSDN通过智能技术生成

element源码分析-checkbox多选框,感觉逻辑跟单选框很像,来看看吧。

checkbox多选框和单选框一样也分为三部分

  • checkbox-group:适用于多个勾选框绑定到同一个数组的情景,通过是否勾选来表示这一组选项中选中的项。
  • checkbox:多选。
  • checkbox-button: 按钮样式的多选。

checkbox-group

相当于把checkbox和checkboxButton形成一个组

结构

  <div class="el-checkbox-group" role="group" aria-label="checkbox-group">
    <!-- 插槽:用来接收checkbox或checkbox-button -->
    <slot></slot>
  </div>
复制代码

script部分

1.接收form组件注入

默认为空,若在form组件中嵌套使用并form组件注入了elFormItem则有值

    inject: {
      elFormItem: {
        default: ''
      }
    }
复制代码
2.注入的内容会在computed中使用
    computed: {
      // 控制大小
      _elFormItemSize() {
        return (this.elFormItem || {}).elFormItemSize;
      },
      checkboxGroupSize() {
        return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
      }
    }
复制代码

checkboxGroupSize会在checkboxcheckboxButton中用到

3.监听value
    watch: {
      // 监听value 向上寻找form组件发布el.form.change事件暴露value(数组)
      value(value) {
        this.dispatch('ElFormItem', 'el.form.change', [value]);
      }
    }
复制代码
4.props接收的属性
    props: {
      // 与v-model绑定
      value: {},
      // 是否禁用
      disabled: Boolean,
      // 最少勾选长度
      min: Number,
      // 最大勾选长度
      max: Number,
      // 大小
      size: String,
      // 边框及背景填充色
      fill: String,
      // 文字颜色
      textColor: String
    }
复制代码

有些属性checkbox和checkboxButton组件会用到

checkbox

结构

1.外层label: 控制外层样式
  <label
    
el-checkbox多选框是一个常用的前端组件,用于实现多选功能。根据引用的描述,el-checkbox多选框的选中状态会存储在字段run_able中。如果选择了多选框,则字段中会有相应的数据,如果没有选择,则字段的值为空。el-checkbox多选框的值可以与其他选择器共用一张表,如引用所提到的需求。 针对el-checkbox多选框的用法,我可以给出以下几点说明: 1. 首先,在页面中需要引入Element UI库,并在组件中注册el-checkbox组件。 2. 在data中定义一个数组(例如,runable),用来存储多选框的选中值。可以根据需求进行初始化,也可以通过后台接口获取数据并赋值给该数组。 3. 在模板中使用el-checkbox-group组件,将数组runable与el-checkbox-group的v-model绑定,实现数据的双向绑定。这样,当用户选择或取消选择多选框时,runable数组的值会相应地改变。 4. 可以通过v-for指令遍历一个数据源,将数据源的每一项渲染成一个el-checkbox选项。使用v-bind指令将数据源中的某个字段(例如,id)绑定到el-checkbox的label属性上,实现选项和数据的关联。 5. 当需要获取el-checkbox多选框的选中值时,可以通过访问数组runable来获取。在提交表单或进行其他操作时,可以将runable数组的值传递给后台进行处理。 综上所述,el-checkbox多选框的用法包括引入Element UI库、定义数组存储选中值、使用el-checkbox-group和v-for指令渲染选项、实现数据的双向绑定,并可通过数组获取选中值。希望这些信息对您有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [el-checkbox复选框和el-select选择器的使用](https://blog.csdn.net/xincang_/article/details/126845519)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值