欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
原理分析和实现
 
注意想实现该功能,需要学习:Vue学习之路(基础篇),深入的了解每个指令的使用
 
首先,还是先把布局写好,和引入vue,准备vue实例,这个不多说,代码如下
 
<!DOCTYPE html>
 
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
 
<head>
 
    <meta charset="UTF-8">
 
    <title>vue实现购物车</title>
 
</head>
 
<body>
 
<div id="app">
 
    <h3>购物车</h3>
 
    名称:<input style="width:60px" type="text" v-model="nameValue"> <br/>
 
    单价:<input style="width:60px" type="text" v-model="priceValue"> <br/>
 
    数量:<input style="width:60px" type="text" v-model="countValue">
 
    <button @click="add()">添加购物车</button>
 
    <hr/>
 
    <table border="1">
 
        <tr>
 
            <td>名称</td>
 
            <td>单价</td>
 
            <td>数量</td>
 
            <td>小计</td>
 
        </tr>
 
        <tr v-for="(product,index) in products">
 
            <td>{{product.name}}</td>
 
            <td>{{product.price}}</td>
 
            <td>
 
                <button @click="desc(index)">-</button>
 
                {{product.count}}
 
                <button @click="incr(index)">+</button>
 
            </td>
 
            <td>{{product.price*product.count}}</td>
 
        </tr>
 
        <tr>
 
            <td colspan="4">总价:{{total()}}元</td>
 
        </tr>
 
    </table>
 
</div>
 
</body>
 
</html>
 
<script src="js/vue-min.js"></script>
 
<script>
 
    new Vue({
 
        el: "#app",
 
        data: {
 
            products: [
 
                {name: "秋裤", price: "81", count: 2},
 
                {name: "华为", price: "5810", count: 1},
 
            ],
 
            nameValue: "",
 
            priceValue: "",
 
            countValue: 0,
 
            totalPrice:0
 
        },
 
        methods: {
 
            incr(index) {
 
                this.products[index].count++;
 
            },
 
            desc(index) {
 
                this.products[index].count--;
 
            },
 
            add() {
 
                this.products.push({name: this.nameValue, price: this.priceValue, count: this.countValue});
 
                this.nameValue = "";
 
                this.priceValue = "";
 
                this.countValue = 0;
 
            },
 
            total(){
 
                var price=0;
 
                for (var i = 0; i <this.products.length; i++) {
 
                    price+=this.products[i].price * this.products[i].count
 
                }
 
                return price.toFixed(2);
 
            }
 
        }
 
    })
 
</script>

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h64194.shtml