元素…">
当前位置:首页 > VUE

vue checkbox实现原理

2026-03-09 02:05:35VUE

Vue Checkbox 实现原理

Vue 中的复选框(Checkbox)实现依赖于双向数据绑定(v-model)和原生 HTML 的 <input type="checkbox"> 元素。核心原理是通过数据驱动视图,将复选框的状态与 Vue 实例的数据属性绑定。

基础实现

  1. 单选框绑定
    通过 v-model 绑定一个布尔值,控制复选框的选中状态:

    <template>
      <input type="checkbox" v-model="isChecked">
    </template>
    <script>
    export default {
      data() {
        return { isChecked: false }
      }
    }
    </script>
    • isCheckedtrue 时复选框选中,反之未选中。
    • 用户操作会同步更新 isChecked 的值。
  2. 多选框组绑定
    绑定到数组时,复选框的 value 属性会被添加到数组或从数组中移除:

    vue checkbox实现原理

    <template>
      <input type="checkbox" v-model="selectedFruits" value="apple">
      <input type="checkbox" v-model="selectedFruits" value="banana">
    </template>
    <script>
    export default {
      data() {
        return { selectedFruits: [] }
      }
    }
    </script>
    • 选中复选框时,其 value 会加入 selectedFruits 数组。
    • 取消选中时,value 从数组中移除。

底层机制

  1. v-model 语法糖
    v-model 本质是 :checked@change 的简写:

    <input 
      type="checkbox" 
      :checked="isChecked" 
      @change="isChecked = $event.target.checked"
    >
  2. 自定义复选框组件
    封装组件时需手动实现 modelValueupdate:modelValue

    vue checkbox实现原理

    <template>
      <input 
        type="checkbox" 
        :checked="modelValue" 
        @change="$emit('update:modelValue', $event.target.checked)"
      >
    </template>
    <script>
    export default {
      props: ['modelValue']
    }
    </script>

特殊处理

  1. true-valuefalse-value
    可自定义选中/未选中时绑定的值:

    <input 
      type="checkbox" 
      v-model="toggle" 
      true-value="yes" 
      false-value="no"
    >
    • 选中时 toggle"yes",取消选中为 "no"
  2. 修饰符

    • .lazy:将 input 事件改为 change 事件触发更新。
    • .number:将输入值转为数字。

注意事项

  • 多选框组需确保 v-model 绑定的是数组。
  • 动态生成复选框时,value 需唯一以避免状态冲突。
  • 自定义组件需正确处理 modelValue 和事件。

标签: 原理vue
分享给朋友:

相关文章

vue实现摘要

vue实现摘要

Vue 实现摘要的方法 在 Vue 中实现文本摘要功能通常涉及截取文本的前部分内容并添加省略号。可以通过计算属性、过滤器或自定义指令来实现。 计算属性实现 在 Vue 组件中定义一个计算属性,用于截…

vue mvvm实现

vue mvvm实现

Vue MVVM 实现原理 Vue.js 是一个基于 MVVM(Model-View-ViewModel)模式的框架,其核心是通过数据绑定和响应式系统实现视图与数据的自动同步。以下是 Vue 实现 M…

vue实现拖动

vue实现拖动

Vue实现拖动的常用方法 在Vue中实现拖动功能通常需要结合HTML5的拖放API或第三方库。以下是几种常见实现方式: 使用HTML5原生拖放API HTML5提供了原生拖放API,可以通过drag…

vue实现 treegrid

vue实现 treegrid

Vue 实现 TreeGrid 的方法 使用现成组件库 Element UI、Ant Design Vue 等流行组件库提供了现成的 TreeTable/TreeGrid 组件,可直接使用。 Ele…

vue实现tip

vue实现tip

Vue实现Tooltip的方法 使用Vue实现Tooltip可以通过多种方式完成,以下是几种常见的方法: 使用原生HTML的title属性 在Vue模板中直接使用HTML的title属性是最简单的实…

vue实现导出excel实现流程

vue实现导出excel实现流程

安装依赖库 需要安装 xlsx 和 file-saver 库来处理 Excel 文件的生成和保存。通过 npm 或 yarn 安装: npm install xlsx file-saver # 或…