效果演示
对于computed的计算属性可以通过这个购物车例子来了解,笔者最近很是疲累,真的不想过多解释了,还请读者自行看代码研究。
参考代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.7.10/vue.js"></script><style>.container {width: 80%;margin: 30px auto;}table {width: 100%;border: 1px solid blue;border-collapse: collapse;}th {height: 50px;}td{height: 32px;}th, td {border-bottom: 1px solid blue;text-align: center;}</style>
</head>
<body>
<div id="app"><div class="container"><table><tr><th>序号</th><th>商品名称</th><th>商品价格</th><th>购买数量</th><th>操作</th></tr><tr v-for="iphone in goods"><td>{{ iphone.id }}</td><td>{{ iphone.name }}</td><td>{{ iphone.price }}</td><td><button v-bind:disabled="iphone.count === 0" v-on:click="iphone.count-=1">-</button>{{ iphone.count }}<button v-on:click="iphone.count+=1">+</button></td><td><button v-on:click="iphone.count=0">移除</button></td></tr></table><p style="text-align:right;"> 总价:${{totalPrice}}</p></div>
</div>
<script>var app = new Vue({el: '#app',data: {goods: [{id: 1,name: 'iphone 15 128g',price: 5999,count: 1},{id: 2,name: 'iphone 15 plus 128g',price: 6999,count: 1},{id: 3,name: 'iphone 15 pro 256g',price: 8999,count: 1}]},computed: {totalPrice: function () {var totalP = 0;for (var i = 0, len = this.goods.length; i < len; i++) {totalP += this.goods[i].price * this.goods[i].count;}return totalP;}}})
</script>
</body>
</html>