当前位置:首页 > VUE

vue 实现复选框

2026-01-21 06:16:45VUE

Vue 实现复选框的方法

在 Vue 中实现复选框可以通过 v-model 指令绑定数据,结合 input 元素的 type="checkbox" 属性来实现。以下是几种常见场景的实现方式。

单个复选框绑定布尔值

适用于单个复选框,绑定一个布尔值来控制选中状态。

<template>
  <div>
    <input type="checkbox" id="checkbox" v-model="checked" />
    <label for="checkbox">{{ checked ? '选中' : '未选中' }}</label>
  </div>
</template>

<script>
export default {
  data() {
    return {
      checked: false
    }
  }
}
</script>

多个复选框绑定数组

适用于多个复选框,绑定一个数组来存储选中的值。

<template>
  <div>
    <input type="checkbox" id="apple" value="苹果" v-model="fruits" />
    <label for="apple">苹果</label>
    <input type="checkbox" id="banana" value="香蕉" v-model="fruits" />
    <label for="banana">香蕉</label>
    <input type="checkbox" id="orange" value="橙子" v-model="fruits" />
    <label for="orange">橙子</label>
    <p>选中的水果: {{ fruits }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      fruits: []
    }
  }
}
</script>

动态生成复选框

适用于根据数据动态生成复选框的场景。

<template>
  <div>
    <div v-for="fruit in fruitOptions" :key="fruit.value">
      <input type="checkbox" :id="fruit.value" :value="fruit.value" v-model="fruits" />
      <label :for="fruit.value">{{ fruit.label }}</label>
    </div>
    <p>选中的水果: {{ fruits }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      fruitOptions: [
        { value: 'apple', label: '苹果' },
        { value: 'banana', label: '香蕉' },
        { value: 'orange', label: '橙子' }
      ],
      fruits: []
    }
  }
}
</script>

自定义复选框组件

封装一个可复用的复选框组件。

<template>
  <div>
    <input type="checkbox" :id="id" :checked="checked" @change="$emit('change', $event.target.checked)" />
    <label :for="id">{{ label }}</label>
  </div>
</template>

<script>
export default {
  props: {
    id: {
      type: String,
      required: true
    },
    label: {
      type: String,
      required: true
    },
    checked: {
      type: Boolean,
      default: false
    }
  }
}
</script>

使用自定义组件:

<template>
  <div>
    <custom-checkbox id="custom" label="自定义复选框" :checked="isChecked" @change="handleChange" />
  </div>
</template>

<script>
import CustomCheckbox from './CustomCheckbox.vue'

export default {
  components: {
    CustomCheckbox
  },
  data() {
    return {
      isChecked: false
    }
  },
  methods: {
    handleChange(checked) {
      this.isChecked = checked
    }
  }
}
</script>

注意事项

  • 使用 v-model 时,确保绑定的数据类型与需求匹配(布尔值或数组)。
  • 动态生成复选框时,为每个复选框设置唯一的 key 属性以提高性能。
  • 自定义组件时,通过 props$emit 实现父子组件通信。

vue 实现复选框

标签: 复选框vue
分享给朋友:

相关文章

vue实现拼音搜索

vue实现拼音搜索

实现拼音搜索的基本思路 拼音搜索的核心是将中文转换为拼音,并在用户输入拼音时匹配对应的中文内容。Vue中可以通过集成拼音转换库(如pinyin或pinyin-pro)实现这一功能。 安装拼音转换库…

vue实现用户信息表

vue实现用户信息表

Vue 实现用户信息表的方法 使用 Vue CLI 创建项目 安装 Vue CLI 并初始化项目: npm install -g @vue/cli vue create user-info-tabl…

vue实现活动倒计时

vue实现活动倒计时

实现活动倒计时的基本思路 在Vue中实现活动倒计时通常需要获取当前时间与活动结束时间的差值,并将其转换为天、小时、分钟、秒的格式展示。通过定时器每秒更新显示的时间。 定义倒计时数据 在Vue组件的…

vue实现微博发布动态

vue实现微博发布动态

使用Vue实现微博发布动态功能 创建Vue组件结构 新建一个WeiboPost.vue组件,包含文本框、图片上传和发布按钮: <template> <div class="we…

vue实现https

vue实现https

Vue 中实现 HTTPS 的步骤 在 Vue 项目中实现 HTTPS 主要涉及开发环境配置和生产环境部署。以下是具体方法: 开发环境配置(Vue CLI 或 Vite) 使用 mkcert 生成…

vue实现tablegrid

vue实现tablegrid

Vue 实现 TableGrid 的方法 使用 Element UI 的 Table 组件 Element UI 提供了强大的 Table 组件,可以快速实现表格布局。安装 Element UI 后,…