📖 Scenario: You are building a simple Vue app to show a list of fruits. You want to display them clearly and update the list easily.
🎯 Goal: Create a Vue component that uses a template to render a list of fruits. Learn why templates help keep your code clean and easy to understand.
📋 What You'll Learn
Create a Vue component with a template section
Define a reactive list of fruits in the script setup
Use a v-for directive in the template to loop over the fruits
Add a heading inside the template for clarity
💡 Why This Matters
🌍 Real World
Templates help developers build clear and maintainable user interfaces by separating HTML from logic.
💼 Career
Understanding Vue templates is essential for frontend developers working with Vue to create dynamic and reactive web apps.
Progress0 / 4 steps
1
Set up the fruits list
Create a Vue component with a <script setup> section and define a reactive array called fruits with these exact values: 'Apple', 'Banana', 'Cherry'.
Vue
Hint
Use ref from Vue to make the fruits array reactive.
2
Add the template with a heading
Add a <template> section below the script. Inside it, add a <h2> heading with the text Fruit List.
Vue
Hint
Templates in Vue use the <template> tag to hold HTML markup.
3
Loop over fruits with v-for
Inside the <template>, below the heading, add an unordered list <ul>. Use v-for="(fruit, index) in fruits" on <li> to loop over the fruits array. Display each fruit inside the list item.
Vue
Hint
Use v-for to loop and {{ }} to show the fruit name.
4
Add a key attribute for list items
In the <li> element inside the v-for, add a :key="index" attribute to help Vue track each item efficiently.
Vue
Hint
Adding a :key helps Vue update the list smoothly when data changes.
Practice
(1/5)
1. Why are templates important in Vue?
easy
A. They let you write HTML that updates automatically when data changes.
B. They make your JavaScript run faster.
C. They replace the need for CSS styling.
D. They allow you to write backend server code.
Solution
Step 1: Understand what templates do in Vue
Templates connect HTML structure with Vue's data, so changes in data update the HTML automatically.
Step 2: Compare options to this understanding
Only They let you write HTML that updates automatically when data changes. correctly describes this automatic update feature of templates.
Final Answer:
They let you write HTML that updates automatically when data changes. -> Option A
Quick Check:
Templates update HTML automatically [OK]
Hint: Templates link data and HTML for automatic updates [OK]
Common Mistakes:
Thinking templates speed up JavaScript execution
Confusing templates with CSS styling
Believing templates handle backend code
2. Which of the following is the correct way to bind a Vue data property message inside a template?
easy
A. <div>$(message)</div>
B. <div>[message]</div>
C. <div>{ message }</div>
D. <div>{{ message }}</div>
Solution
Step 1: Recall Vue template syntax for data binding
Vue uses double curly braces {{ }} to insert data values into templates.
Step 2: Match options to correct syntax
Only <div>{{ message }}</div> uses the correct {{ message }} syntax for binding.
Final Answer:
<div>{{ message }}</div> -> Option D
Quick Check:
Vue uses {{ }} for data binding [OK]
Hint: Use double curly braces {{ }} to bind data in templates [OK]
Common Mistakes:
Using square brackets or single braces instead of {{ }}
Trying to use jQuery style $() syntax
Confusing template syntax with JavaScript object notation
3. Given this Vue template and data:
<template>
<div>Hello, {{ name }}!</div>
</template>
<script setup>
import { ref } from 'vue'
const name = ref('Alice')
</script>
What will be displayed when the component renders?
medium
A. Hello, Alice!
B. Hello, name!
C. Hello, {{ name }}!
D. Hello, undefined!
Solution
Step 1: Understand how Vue renders reactive data in templates
The template uses {{ name }} which binds to the reactive variable name with value 'Alice'.
Step 2: Determine the rendered output
Vue replaces {{ name }} with the current value 'Alice', so the output is 'Hello, Alice!'.
Final Answer:
Hello, Alice! -> Option A
Quick Check:
Reactive data shows actual value [OK]
Hint: Reactive refs show their value inside {{ }} in templates [OK]
Without reactivity, changes to message won't update the template automatically.
Final Answer:
The message variable is not reactive, so template won't update if changed. -> Option B
Quick Check:
Non-reactive data won't update template [OK]
Hint: Use ref() or reactive() for reactive data in templates [OK]
Common Mistakes:
Thinking plain variables are reactive by default
Believing template syntax {{ }} is wrong
Assuming imports are always required in script setup
5. You want to create a Vue component that shows a list of tasks and updates automatically when tasks change. Which template approach best supports this?
hard
A. Use JavaScript to manually update the DOM elements outside the template.
B. Write tasks directly in HTML without binding to data.
C. Use a template with v-for to loop over a reactive tasks array and display each task.
D. Render tasks as a plain string inside a single <div> without looping.
Solution
Step 1: Identify how Vue templates handle lists reactively
Vue uses v-for directive in templates to loop over reactive arrays and update the DOM automatically.
Step 2: Evaluate options for dynamic list rendering
Only Use a template with v-for to loop over a reactive tasks array and display each task. uses v-for with reactive data, enabling automatic updates when tasks change.
Final Answer:
Use a template with v-for to loop over a reactive tasks array and display each task. -> Option C
Quick Check:
v-for with reactive array = dynamic list updates [OK]
Hint: Use v-for on reactive arrays to render dynamic lists [OK]
Common Mistakes:
Hardcoding list items in HTML without data binding
Manually manipulating DOM instead of using templates
Rendering list as plain string without looping
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.