vue:实现图书购物车

Posted qjuly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue:实现图书购物车相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>图书购物车</title>
    <script src="vue/vue.js"></script>
    <style>
        table {
            border: 1px solid #e9e9e9;
            border-collapse: collapse;
            border-spacing: 0;
        }

        th, td {
            padding: 0px 16px;
            border: 1px solid #e9e9e9;
            text-align: left;
        }

        th {
            background-color: #f7f7f7;
            color: #5c6b77;
            font-weight: 600;
        }
    </style>
</head>
<body>
    <div id="app">
        <div v-if="books.length">
            <table>
                <thead>
                    <tr>
                        <th></th>
                        <th>书籍名称</th>
                        <th>出版日期</th>
                        <th>价格</th>
                        <th>购买数量</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody>
                    <tr v-for="(b, index) in books">
                        <td>{{b.id}}</td>
                        <td>{{b.name}}</td>
                        <td>{{b.date}}</td>
                        <td>{{b.price | showPrice}}</td>
                        <td>
                            <button :disabled="b.count <= 0" @click="decrement(index)">-</button>
                            {{b.count}}
                            <button @click="increment(index)">+</button>
                        </td>
                        <td><button @click="removeHandle(index)">移除</button></td>
                    </tr>
                </tbody>
            </table>
            <h2>总价格: {{totalPrice}}</h2>
        </div>
        <h2 v-else>购物车为空</h2>
    </div>
    <script>
        const app = new Vue({
            el: "#app",
            data: {
                books: [
                    {
                        id: 1,
                        name: "《算法导论》",
                        date: "2006-9",
                        price: 85.00,
                        count: 0
                    },
                    {
                        id: 2,
                        name: "《UNIX编程艺术》",
                        date: "2006-2",
                        price: 59.00,
                        count: 0
                    },
                    {
                        id: 3,
                        name: "《编程珠玑》",
                        date: "2008-10",
                        price: 39.00,
                        count: 0
                    },
                    {
                        id: 4,
                        name: "《算法导论》",
                        date: "2006-9",
                        price: 85.00,
                        count: 0
                    },
                ]
            },

            methods: {
                increment(index) {
                    this.books[index].count += 1;
                },
                decrement(index) {
                    this.books[index].count -= 1;
                },
                removeHandle(index) {
                    this.books.splice(index, 1);
                }
            },
            computed: {
                totalPrice() {
                    let totalPrice = 0;
                    for (let i = 0; i<this.books.length; i++) {
                        totalPrice += this.books[i].price * this.books[i].count;
                    }
                    return totalPrice
                }
            },
            filters: {
                showPrice(price) {
                    return "¥" + price.toFixed(2);
                }
            }
        })
    </script>
</body>
</html>

以上是关于vue:实现图书购物车的主要内容,如果未能解决你的问题,请参考以下文章

vue.js实现图书购物商城

vue.js实现图书购物商城

vue:实现图书购物车

基于Java+SpringBoot+vue+node.js的图书购物商城系统详细设计和实现

基于Java+SpringBoot+vue+node.js的图书购物商城系统详细设计和实现

Vue实现购物小球抛物线的方法实例