Vue.js v-for: How to Declare an Index Variable Like a Pro
Learn how to declare an index variable using v-for in Vue.js. Understand how to loop through arrays efficiently with a complete demo and insights from the official Vue documentation.

When working with Vue.js, one of the most powerful directives at your disposal is v-for
. It allows you to loop through lists and display them dynamically in your template. A hidden gem of this directive is the ability to declare an index variable effortlessly.
In this post, we'll explore:
What
v-for
doesHow to use an index variable
A live demo example
Insights from Vue's official documentation
What Is v-for
in Vue.js?
The v-for
directive is used to render a list of items by iterating over an array. It's a core feature for creating dynamic lists in your application UI.
Here's a basic structure:
But wait—what if you need the index of each item as well?
That’s where the index variable shines.
How to Declare an Index Variable in v-for
Vue allows you to declare a second parameter in the v-for
directive: the index of the current item.
Syntax:
item
– the current item in the loopindex
– the zero-based index of the item
Demo: Using Index in Vue.js with v-for
Let's look at a hands-on demo.
JavaScript (Vue Component):
HTML Template:
Output:
This example clearly shows how the index can be printed alongside each item in the array.
From the Vue Official Docs
According to the Vue.js official documentation:
Inside
v-for
blocks, we have full access to the parent scope.v-for
also supports an optional second argument for the index of the current item.
This makes v-for
incredibly flexible and easy to use for array rendering.
Why Use the Index Variable?
Using the index variable can be helpful when:
You need to display the item’s position in the list.
You're working with arrays that don't have unique IDs.
You need a quick, simple key for Vue’s reactivity system (though unique IDs are preferred).
Best Practices
Always use
:key
withv-for
to help Vue track element changes.Prefer using a unique ID over index for
:key
when possible.Use index when you need to show item position, like in ordered lists.
FAQs About Declaring Index Variable in Vue v-for
1. Can I skip the index in v-for
?
Yes, the index is optional. You can write v-for="item in items"
if you don’t need the index.
2. Can I name the index variable anything I want?
Yes, index
is just a name. You can use any variable name like i
, idx
, etc.
3. Can I use index as a key in v-for
?
You can, but it’s not ideal if your list can be reordered. Prefer unique identifiers.
4. Is the index 0-based or 1-based?
It’s 0-based, meaning the first item starts at index 0.
5. How does Vue track reactivity with indexes?
Vue uses the :key
to track changes. Using index as a key can cause rendering issues if items are reordered.
6. Is this available in Vue 3?
Yes, Vue 3 supports the same syntax and concepts as Vue 2 for v-for
.
Conclusion
Declaring an index variable with v-for
in Vue.js is a straightforward but powerful feature. It enables developers to create more dynamic and user-friendly interfaces, especially when displaying list data.
Use it wisely, and always remember to pair it with the proper :key
binding for optimal performance.
🔗 Related Resource:
Explore the official guide on List Rendering in Vue.js for deeper insights.