Bird
Raised Fist0
Vueframework~15 mins

v-model with checkboxes in Vue - Mini Project: Build & Apply

Choose your learning style10 modes available
Using v-model with Checkboxes in Vue
📖 Scenario: You are building a simple preferences form for a website where users can select their favorite fruits using checkboxes.
🎯 Goal: Create a Vue component that uses v-model to bind an array of selected fruits to multiple checkboxes. The component should update the array automatically when checkboxes are checked or unchecked.
📋 What You'll Learn
Create a Vue component with a reactive array called selectedFruits initialized as empty.
Add a list of fruit names as checkboxes in the template.
Use v-model on each checkbox to bind it to selectedFruits.
Display the currently selected fruits below the checkboxes.
💡 Why This Matters
🌍 Real World
Checkbox groups are common in forms where users select multiple options, such as preferences, filters, or interests.
💼 Career
Understanding how to bind multiple checkboxes to a reactive array with v-model is essential for building interactive forms in Vue applications.
Progress0 / 4 steps
1
Set up the initial data array
Create a Vue component with a reactive array called selectedFruits initialized as an empty array [] inside the setup() function using ref.
Vue
Hint

Use import { ref } from 'vue' and then const selectedFruits = ref([]) inside <script setup>.

2
Add a list of fruit checkboxes
In the <template>, add three checkboxes with labels: Apple, Banana, and Cherry. Use input elements of type checkbox with value attributes set to the fruit names.
Vue
Hint

Use three input elements with type="checkbox" and value set to each fruit name.

3
Bind checkboxes with v-model
Add v-model="selectedFruits" to each checkbox input to bind them to the reactive array selectedFruits.
Vue
Hint

Add v-model="selectedFruits" to each checkbox input to link them to the reactive array.

4
Display selected fruits
Below the checkboxes, add a <div> that shows the text Selected fruits: followed by the joined list of fruits in selectedFruits using {{ selectedFruits.join(', ') }}.
Vue
Hint

Use {{ selectedFruits.join(', ') }} inside a <div> to display the selected fruits separated by commas.

Practice

(1/5)
1. What type of data should you use with v-model when binding to multiple checkboxes in Vue?
easy
A. A string representing the last selected checkbox
B. A boolean to represent true or false
C. An array to hold the selected values
D. A number counting how many checkboxes are checked

Solution

  1. Step 1: Understand checkbox binding

    When multiple checkboxes are bound with v-model, Vue expects an array to store all selected values.
  2. Step 2: Compare data types for checkboxes

    A boolean is used for single checkboxes, but for multiple checkboxes, an array collects all checked values.
  3. Final Answer:

    An array to hold the selected values -> Option C
  4. Quick Check:

    Multiple checkboxes = array [OK]
Hint: Multiple checkboxes always bind to an array [OK]
Common Mistakes:
  • Using a boolean for multiple checkboxes
  • Binding to a string instead of an array
  • Expecting a number to track checked boxes
2. Which of the following is the correct syntax to bind a single checkbox with v-model in Vue?
easy
A. <input type='checkbox' v-model='checked' />
B. <input type='checkbox' :value='checked' />
C. <input type='checkbox' v-bind='checked' />
D. <input type='checkbox' v-model:value='checked' />

Solution

  1. Step 1: Identify correct binding directive

    The v-model directive binds the checkbox's checked state to a data property.
  2. Step 2: Check syntax correctness

    <input type='checkbox' v-model='checked' /> uses v-model='checked' which is the correct and simplest syntax for binding a single checkbox.
  3. Final Answer:

    <input type='checkbox' v-model='checked' /> -> Option A
  4. Quick Check:

    Single checkbox uses v-model='property' [OK]
Hint: Use v-model directly on checkbox for single binding [OK]
Common Mistakes:
  • Using :value instead of v-model
  • Using v-bind without specifying property
  • Using v-model:value which is invalid
3. Given this Vue template code:
<template>
  <input type='checkbox' v-model='selected' value='apple' />
  <input type='checkbox' v-model='selected' value='banana' />
  <input type='checkbox' v-model='selected' value='cherry' />
  <p>Selected: {{ selected }}</p>
</template>

<script setup>
import { ref } from 'vue'
const selected = ref([])
</script>

What will be displayed after the user checks the boxes for "apple" and "cherry"?
medium
A. Selected: 'apple,cherry'
B. Selected: ['apple', 'cherry']
C. Selected: ['apple']
D. Selected: true

Solution

  1. Step 1: Understand v-model with multiple checkboxes

    When multiple checkboxes share the same v-model bound to an array, Vue adds the checkbox's value to the array when checked.
  2. Step 2: Check which boxes are selected

    User checked "apple" and "cherry", so the array contains ['apple', 'cherry'].
  3. Final Answer:

    Selected: ['apple', 'cherry'] -> Option B
  4. Quick Check:

    Checked boxes values collected in array [OK]
Hint: Multiple checkboxes with same v-model store values in array [OK]
Common Mistakes:
  • Expecting a string instead of an array
  • Thinking only last checked value is stored
  • Confusing boolean with array for multiple checkboxes
4. What is wrong with this Vue checkbox binding?
<input type='checkbox' v-model='checked' value='yes' />

<script setup>
import { ref } from 'vue'
const checked = ref(false)
</script>

Why does checking the box not add 'yes' to checked?
medium
A. Because checked should be a string, not boolean
B. Because value attribute is missing
C. Because v-model cannot be used on checkboxes
D. Because checked is a boolean, not an array, so value is ignored

Solution

  1. Step 1: Identify data type for v-model

    The variable checked is a boolean, so Vue treats the checkbox as a single toggle (true/false).
  2. Step 2: Understand effect of value attribute

    When v-model is boolean, the value attribute is ignored; it only matters when binding to an array.
  3. Final Answer:

    Because checked is a boolean, not an array, so value is ignored -> Option D
  4. Quick Check:

    Boolean v-model ignores value attribute [OK]
Hint: Boolean v-model ignores value; use array for multiple values [OK]
Common Mistakes:
  • Thinking value attribute always affects checkbox state
  • Believing v-model can't be used on checkboxes
  • Using string instead of boolean or array incorrectly
5. You want to create a group of checkboxes for selecting favorite fruits using v-model. The data property is favorites initialized as an empty array. Which code snippet correctly updates favorites when users check or uncheck fruits?
hard
A. <input type='checkbox' v-model='favorites' value='apple' /> <input type='checkbox' v-model='favorites' value='banana' /> <input type='checkbox' v-model='favorites' value='cherry' />
B. <input type='checkbox' v-model='favorites' :value='true' /> <input type='checkbox' v-model='favorites' :value='false' />
C. <input type='checkbox' v-model='favorites.apple' /> <input type='checkbox' v-model='favorites.banana' />
D. <input type='checkbox' v-model='favorites' value='true' /> <input type='checkbox' v-model='favorites' value='false' />

Solution

  1. Step 1: Understand array binding for multiple checkboxes

    Binding multiple checkboxes to the same array with v-model and distinct value attributes collects checked values in the array.
  2. Step 2: Evaluate each option's correctness

    <input type='checkbox' v-model='favorites' value='apple' /> <input type='checkbox' v-model='favorites' value='banana' /> <input type='checkbox' v-model='favorites' value='cherry' /> correctly uses v-model='favorites' with unique string values for each checkbox, so checked fruits are added or removed from the array.
  3. Final Answer:

    <input type='checkbox' v-model='favorites' value='apple' /> <input type='checkbox' v-model='favorites' value='banana' /> <input type='checkbox' v-model='favorites' value='cherry' /> -> Option A
  4. Quick Check:

    Multiple checkboxes + array + unique values = correct binding [OK]
Hint: Use array with unique values for multiple checkboxes [OK]
Common Mistakes:
  • Using boolean values instead of unique strings
  • Binding to object properties instead of array
  • Using same value for all checkboxes
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard