计算总价的函数使用在视图的数据标记中声明的items对象。因为它是空的,所以价格总是0。你应该这样做:
new Vue({
el: '#app',
data:{
items: [
{ id: 1, desc: 'Banana', price: 10 },
{ id: 2, desc: 'Pen', price: 5 },
{ id: 3, desc: 'Melon', price: 5 }
]
},
computed: {
total: function(){
console.log(this.items);
return this.items.reduce(function(total, item){
return total + item.price;
},0);
}
},
mounted() {
console.log('app mounted');
}
})
vue应该更像这样:
<div id="app">
<h2>List of items</h2>
<items-table v-bind:total="total" v-bind={items}></items-table>
</div>
希望它能帮你解决问题
编辑:JSFiddle:
https://jsfiddle.net/eywraw8t/210901/