Why Vue Code for Article
HTML
<div id="app">
<ul>
<li v-for="(product, index) in products">
<input type="number" v-model.number="product.quantity">
{{product.name}}
<span v-if="product.quantity === 0">
- OUT OF STOCK
</span>
<button @click="increment(product, index)">
Add
</button>
</li>
</ul>
<h2>Total Inventory: {{ totalProducts }}</h2>
</div>
<script src="https://unpkg.com/vue"></script>
<script>
const app = new Vue({
el: '#app',
data: {
products: []
},
computed: {
totalProducts () {
return this.products.reduce((sum, product) => {
return sum + product.quantity
}, 0)
}
},
created () {
fetch('https://api.myjson.com/bins/74l63')
.then(response => response.json())
.then(json => {
this.products = json.products
})
},
methods : {
increment : (product, index) => {
console.log(this.products)
/* this.products[index] = product.quantity + 1 */;
this.products += 1;
}
}
})
</script>