In Vue JS, you can easily create a search filter using a computed property to dynamically filter a list of items based on user input. In this tutorial, we will walk through the process of creating a search filter using a computed property in Vue JS.
Step 1: Set up a Vue JS project
First, you need to set up a Vue JS project. You can do this by using Vue CLI to create a new project or by including Vue JS in your HTML file. For this tutorial, we will assume you have a basic Vue JS project set up with a list of items that you want to filter.
Step 2: Create a data property for the search query
Next, you need to create a data property in your Vue component to store the user’s search query. This will be used to filter the list of items. Add the following code to your Vue component:
data() {
return {
searchQuery: '',
items: [
{ name: 'Item 1' },
{ name: 'Item 2' },
{ name: 'Item 3' },
{ name: 'Item 4' }
]
}
}
In this code snippet, we have initialized a data property called searchQuery
to store the user’s search query and an array of items
that we want to filter.
Step 3: Create a computed property for the filtered items
Next, you need to create a computed property to filter the list of items based on the user’s search query. Add the following code to your Vue component:
computed: {
filteredItems() {
return this.items.filter(item => {
return item.name.toLowerCase().includes(this.searchQuery.toLowerCase());
});
}
}
In this code snippet, we have created a computed property called filteredItems
that filters the items
array based on the user’s search query. We are using the filter
method to return only the items whose names include the search query, regardless of case.
Step 4: Display the filtered items in the template
Finally, you need to display the filtered items in the template. Add the following code to your Vue component’s template:
<input type="text" v-model="searchQuery" placeholder="Search">
<ul>
<li v-for="item in filteredItems" :key="item.name">{{ item.name }}</li>
</ul>
In this code snippet, we have added an input field for the user to type their search query. We are using the v-model
directive to bind the input field to the searchQuery
data property. We then use a v-for
directive to loop through the filteredItems
array and display each item in a list.
That’s it! You have now created a search filter using a computed property in Vue JS. Users can type in the input field to filter the list of items dynamically. This is a simple and powerful way to add search functionality to your Vue JS applications.
Excellent content, I’m showing this to my students!
how can i contact you?
nice tutorial
https://medium.com/@samchowdhury/create-a-search-filter-with-computed-property-in-vue-js-b4140c9b96b2