ProductList.vue 608 B

123456789101112131415161718192021222324252627282930313233343536
  1. <template>
  2. <ul>
  3. <li v-for="p in products">
  4. {{ p.title }} - {{ p.price | currency }}
  5. <br>
  6. <button
  7. :disabled="!p.inventory"
  8. @click="addToCart(p)">
  9. Add to cart
  10. </button>
  11. </li>
  12. </ul>
  13. </template>
  14. <script>
  15. import vuex from '../vuex'
  16. const { getAllProducts, addToCart } = vuex.actions
  17. export default {
  18. computed: {
  19. products () {
  20. return vuex.state.products
  21. }
  22. },
  23. created () {
  24. getAllProducts()
  25. },
  26. methods: {
  27. addToCart (product) {
  28. if (product.inventory > 0) {
  29. addToCart(product.id)
  30. }
  31. }
  32. }
  33. }
  34. </script>