• 011 vue的购书案例


    示例代码:

    <script>
        /*
            购物车买书的case
                需求:
                    1. 点击按钮增加买书量,自动计算总价
                    2. 可移除某些书籍
                    3. 当所有书籍被移除后,页面显示购物车为空
            
            移除书籍:修改数据模型即可,页面会自动修改
        */
    </script>
    <style>
        .tb{ border: black 3px solid; border-spacing: 0;}
        thead{ background-color: rgb(236, 209, 209); font-weight: bold;}
        tr{ height: 50px; align-items: center;}
        td{  100px; border: black solid 1px; text-align: center; border-spacing: 0;}
    </style>
    <body>
        <div id="app">
            <div v-if="totalPrice !== 0">
                <table class="tb">
                    <!-- 设置列宽 -->
                    <thead>
                        <tr class="firstLine">
                            <td></td><td>数据名称</td><td>出版日期</td><td>价格</td><td>购买数量</td><td>操作</td>
                        </tr>
                    </thead>
                    <tbody>
                        <tr v-for="(item, index) in books">
                            <td>{{index + 1}}</td>
                            <td>《{{item.name}}》</td>
                            <td>{{item.issueday}}</td>
                            <td>¥{{item.price.toFixed(2)}}</td>
                            <td>
                                <button @click="minusNum(index)" :disabled="item.count <= 1">-</button>
                                {{item.count}}
                                <button @click="addNum(index)">+</button>
                            </td>
                            <td><button @click="delCol(index)">移除</button></td>
                        </tr>
                    </tbody>
                    
                </table>
                <div>总价:¥{{totalPrice}}</div>
            </div>
            <div v-else>购物车为空</div>
            
    
        </div>
    </body>
    <script>
        var app = new Vue({
            el: "#app",
            data:{
                books:[
                    {name: "平凡世界", issueday: "2006-10", price: 39.00, count: 1},
                    {name: "安静人生", issueday: "2008-03", price: 56.00, count: 1},
                    {name: "松下花开", issueday: "2002-09", price: 74.00, count: 1},
                    {name: "你若安好", issueday: "2011-11", price: 24.00, count: 1},
                    {name: "自由追求", issueday: "2012-02", price: 54.00, count: 1},
                ],
            },
            computed:{
                totalPrice(){
                    // 1. 普通方法
                    // var res = 0;
                    // for(index in this.books){
                    //     res = res + this.books[index].count * this.books[index].price;
                    // }
                    // return res;
                    
                    // 2. reduce方法
                    return this.books.reduce(function(pre, cur, index, arr){
                        return pre + cur.count * cur.price;
                    }, 0)
                }
            },
            methods:{
                minusNum(index){
                    this.books[index].count--;
                },
                addNum(index){
                    this.books[index].count++;
                },
                delCol(index){
                    this.books.splice(index, 1);
                }
            }
        })
    </script>
    View Code
  • 相关阅读:
    MySQL 对于千万级的大表要怎么优化?
    mysql数据库优化总结
    php 正则表达式怎么匹配标签里面的style?
    php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期
    PHP过滤常用标签的正则表达式
    php冒泡排序
    PHP中__FUNCTION__与__METHOD__的区别
    关于PHP程序员技术职业生涯规划
    初识DSP
    MATLAB图像处理基础
  • 原文地址:https://www.cnblogs.com/carreyBlog/p/14062098.html
Copyright © 2020-2023  润新知