直接使用computed计算属性来改变总价
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <title>Title</title> <!-- Bootstrap --> <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script> <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script type="text/javascript" src="./node_modules/vue/dist/vue.js"></script> <script type="text/javascript" src="./node_modules/vue-router/dist/vue-router.js"></script> <script type="text/javascript" src="./node_modules/axios/dist/axios.js"></script> </head> <body> <div id="box"> <div class="text-info"><h4>购物车</h4></div> <rk-cart :goods="goods"></rk-cart> <div> 合计:{{totalPrice}}元 </div> </div> <script type="text/x-template" id="cart"> <table border="1" width="90%"> <tr> <th>序号</th> <th>名称</th> <th>价格</th> <th>数量</th> <th>操作</th> </tr> <tr v-for="(item,key) in goods"> <td>{{item.id}}</td> <td>{{item.goodsName}}</td> <td>{{item.price}}</td> <td> <input type="text" v-model="item.num"> </td> <td>删除</td> </tr> </table> </script> <script type="text/javascript"> let rkCart = { props:['goods'], template:'#cart' }; let app = new Vue({ el:'#box', computed:{ totalPrice(){ let sum = 0; this.goods.forEach(v=>{ sum += v.price * v.num; }); return sum; } }, data:{ goods:[ {id:1,goodsName:'iphone 8 Plus',price:6900,num:1}, {id:2,goodsName:'爱奇艺vip',price:100,num:1}, ], }, components:{rkCart}, }); </script> </body> </html>