computed属性和watch属性的区别之四【购物车之computed】
程序员文章站
2022-03-25 18:45:27
...
<body>
<div id = 'app'>
<div>
<h3>{{title}}</h3>
</div>
<div>
<div>
<table>
<thead>
<tr>
<td>名称</td>
<td>价格(元)</td>
<td>数量(kg)</td>
<td>共计(元)</td>
</tr>
</thead>
<tbody>
<tr v-for = 'item in list '>
<td>{{item.name}}</td>
<td><input type="number" v-model = 'item.price'></td>
<td><input type="number" v-model = 'item.number'></td>
<td>{{item.price * item.number}}</td>
</tr>
<tr>
<td>合计</td>
<td>{{single_price_sum}}</td>
<td>{{single_number_sum}}</td>
<td>{{all_total}}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<script src="https://cdn.bootcss.com/vue/2.5.8/vue.min.js"></script>
<script type="text/javascript">
var _vm = new Vue({
data : {
title : 'computed属性和watch属性的区别之四【购物车之computed】',
list : [
{id : 1, name : '大白菜', price : 10, number : 1, },
{id : 2, name : '小白菜', price : 20, number : 2,},
{id : 3, name : '中白菜', price : 30, number : 3,}
]
},
computed : {
all_total : function() {
var _total = 0 ;
this.m_each(function(item) {
_total += item.price * item.number ;
}) ;
return _total ;
},
single_number_sum : function() {
var _num = 0 ;
this.m_each(function(item) {
_num += parseFloat(item.number) ;
}) ;
return _num ;
},
single_price_sum : function() {
var _price = 0 ;
this.m_each(function(item) {
_price += parseFloat(item.price) ;
}) ;
return _price ;
}
},
methods : {
m_each : function(callback) {
for(var i = 0; i < this.list.length; i++) {
callback(this.list[i]) ;
}
}
}
}).$mount('#app') ;
</script>
</body>
推荐阅读
-
ajax中的async属性值之同步和异步及同步和异步区别
-
详解Vue的computed(计算属性)使用实例之TodoList
-
Vue 2.0学习笔记之Vue中的computed属性
-
CSS布局之浮动(float)和定位(position)属性的区别
-
ajax中的async属性值之同步和异步及同步和异步区别
-
Html之lable + checked时,动态添加属性时,input并没有被勾选,因为attr和prop的区别
-
Vue 中 watch 属性,computed 计算属性以及 method 属性的区别
-
详解Vue的computed(计算属性)使用实例之TodoList
-
vue中计算属性(computed)、methods和watched之间的区别
-
ajax中的async属性值之同步和异步及同步和异步区别