Checkboxes no Vue.js
Checkboxes representam elementos de controle que podem estar em dois estados: marcado ou desmarcado. Quando a diretiva v-model
checked
change
true
false
No exemplo a seguir, um checkbox simples está vinculado a um valor booleano:
<!DOCTYPE html>
<html>
<head>
<title>Explorando Vue.js</title>
<meta charset="utf-8" />
</head>
<body>
<script src="https://unpkg.com/vue"></script>
<div id="app">
<input type="checkbox" id="checkbox" v-model="checked">
<label for="checkbox">{{ checked }}</label>
</div>
<script>
Vue.createApp({
data() {
return {
checked: true
};
}
}).mount('#app');
</script>
</body>
</html>
O estado marcado é vinculado ao valor true
false

Checkbox com Valores Personalizados
É possível configurar valores personalizados para os estados marcado e desmarcado por meio dos atributos true-value
false-value
<script src="https://unpkg.com/vue"></script>
<div id="app">
<input type="checkbox" v-model="light" true-value="on" false-value="off" />
<span v-if="light === 'on'">Desligar</span>
<span v-else>Ligar</span>
</div>
<script>
Vue.createApp({
data() {
return {
light: 'on'
};
}
}).mount('#app');
</script>
Neste exemplo, o estado marcado corresponde ao valor "on"
"off"
light
light === 'on'

Checkbox com Array
Multiplos checkboxes podem ser vinculados a um array. Nesse caso, ao marcar um checkbox, seu valor é adicionado ao array, e ao desmarcá-lo, ele é removido:
<!DOCTYPE html>
<html>
<head>
<title>Explorando Vue.js</title>
<meta charset="utf-8" />
</head>
<body>
<script src="https://unpkg.com/vue"></script>
<div id="app">
<input type="checkbox" value="Tom" v-model="selectedUsers">
<label>Tom</label><br>
<input type="checkbox" value="Bob" v-model="selectedUsers">
<label>Bob</label><br>
<input type="checkbox" value="Sam" v-model="selectedUsers">
<label>Sam</label><br>
<span>Selecionados: {{ selectedUsers }}</span>
</div>
<script>
Vue.createApp({
data() {
return {
selectedUsers: []
};
}
}).mount('#app');
</script>
</body>
</html>
Neste exemplo, os valores dos checkboxes ("Tom", "Bob", "Sam") são adicionados ao array selectedUsers

Checkbox com Objeto
Outra opção é vincular checkboxes a um objeto. Nesse caso, O atributo v-bind:value
<!DOCTYPE html>
<html>
<head>
<title>Explorando Vue.js</title>
<meta charset="utf-8" />
</head>
<body>
<script src="https://unpkg.com/vue"></script>
<div id="app">
<template v-for="user in users">
<input type="checkbox" v-bind:value="user" v-model="selectedUsers">
<label>{{ user.name }}</label><br>
</template>
<ul>
<li v-for="user in selectedUsers">{{ user.name }} - {{ user.age }}</li>
</ul>
</div>
<script>
Vue.createApp({
data() {
return {
users: [
{ name: 'Tom', age: 22 },
{ name: 'Bob', age: 25 },
{ name: 'Sam', age: 28 },
],
selectedUsers: []
};
}
}).mount('#app');
</script>
</body>
</html>
Neste exemplo, os valores dos checkboxes são objetos com as propriedades name
age
selectedUsers
