vue js удалить товар из корзины через 10 минут?

Проект на vue

есть задача, добавлять товар в корзину, со временем, по истечению которого, товар удаляется из корзины

товар в корзину добавляю в стор

    state.cart.push({
      id: product.id,
      name: product.name,
      path: product.path,
      image: product.image,
      price: product.price,
      old_price: product.old_price,
      created_at: new Date().getTime(), //текущая дата
      expiration_at: new Date().getTime() + 10000 текущая дата + 10 мин,
      quantity: 1
    })

как реализовать автоматическое удаление товара из корзины, если прошло 10 минути заказ не оформлен


Ответы (1 шт):

Автор решения: Ivan Petrov

В хуке mounted() создаём setInterval() с интервалом в минуту, внутри проверяем все позиции товаров на срок годности, удаляем из корзины с вышедшим сроком годности. Чтобы удалить интервал вызываем clearInterval() в хуке beforeUnmount(). Подробнее об интервалах и хуках. Возможно это не самый хороший и правильный способ, но он рабочий. Здесь идёт итерация массива с товарами, что плохо может сказаться на производительности.

Есть второй способ: скрывать товары, у которых истёк срок годности (прямо в компоненте проверяйте или в v-for с v-if), а перед тем как делать заказ - чистите эти товары.

→ Ссылка