Hello I'm doing a dropdown in my website and I'm really new in Vue. I'm using conditional rendering for display some cards. Something like: Cars, Motos, Bikes. When i click on Cars there is a dropdown and i get a list of cars, same on others.
<h2 class="text-center my-font text-light"><button v-on:click="toggle = !toggle" class="badge badge-danger menu-label-size w-50">Cars</button></h2>
<div v-if="toggle" class="row">
<div class="col-12">
<div class="cards-item text-center ">
<div v-for="item in cars" ::key="item.id" class="card" style="width: 10rem;">
<img :src="'./images/cars/img' + item.img + '.png'" class="card-img-top img-fluid" alt="item.name">
<div class="card-body d-flex flex-column justify-content-end">
<h4 class="card-title my-font">{{ item.name }}</h4>
<p class="badge-danger font-weight-bold">{{ item.price }}</p>
</div>
</div>
</div>
</div>
</div>
<h2 class="text-center my-font text-light"><button v-on:click="toggle = !toggle" class="badge badge-danger menu-label-size w-50">Motos</button></h2>
<div v-if="toggle" class="row">
<div class="col-12">
<div class="cards-item text-center">
<div v-for="item in motos" ::key="item.id" class="card" style="width: 10rem;">
<img :src="'./images/motos/img' + item.img + '.png'" class="card-img-top img-fluid" alt="item.name">
<div class="card-body d-flex flex-column justify-content-end">
<h4 class="card-title my-font">{{ item.name }}</h4>
<p class="badge-danger font-weight-bold">{{ item.price }}</p>
</div>
</div>
</div>
</div>
</div>
<h2 class="text-center my-font text-light"><button v-on:click="toggle = !toggle" class="badge badge-danger menu-label-size w-50">Bikes</button></h2>
<div v-if="toggle" class="row">
<div class="col-12">
<div class="cards-item text-center">
<div v-for="item in bikes" ::key="item.id" class="card" style="width: 10rem;">
<img :src="'./images/bikes/img' + item.img + '.png'" class="card-img-top img-fluid" alt="item.name">
<div class="card-body d-flex flex-column justify-content-end">
<h4 class="card-title my-font">{{ item.name }}</h4>
<p class="badge-danger font-weight-bold">{{ item.price }}</p>
</div>
</div>
</div>
</div>
</div>
My script:
const app = new Vue({
el: '#app',
data: {
show: false,
cars: [{data}],
motos: [{data}],
bikes: [{data}],
},
})
But when i click on Motos it only closes Cars. How to make it dynamic? Like if i press Motos then it opens and Cars closes, same for Bikes