geometria
@geometria

Как в Vue перемешать полученные данные axios?

Вот мой код Vue, который выводит по порядку (по id) 14 первых записей из БД.
Как мне отобразить эти данные рандомно?

<template>
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                     <div class="card-body">
                        <div
                     v-if="product.id < 15 "
                     v-for="product in products" class="row product-row">
                            <div class="col-md-4">
                                <img :src="product.picture" :alt="product.name">
                            </div>
                             <div class="col-md-8">
                                 <p><b>{{ product.name }}</b></p>
                                 <p>{{ product.price }}</p>
                                 <p>{{ product.description }}</p> 
                             </div>
                         </div>
                     </div>
                </div>
            </div>
        </div>
    </div>
</template>
 
<script>
import axios from 'axios'
export default {
        data() {
            return {
                products: [],
            }
        },

mounted() 
{ 
let vm = this
vm.getProducts(); 
}, 

methods: {
getProducts() {
                let vm = this
                axios.get('/api/products')
                    .then(function(response) {
                        vm.products = response.data.data  
                    })
           },
      },
}
</script>
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
Полученный массив перемешать сразу при получении:
// вместо
vm.products = response.data.data  

// так:
vm.products = response.data.data.sort((a,b) => Math.random() - 0.5)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы