zoukankan      html  css  js  c++  java
  • vue实现翻页功能加高阶函数加购物车

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="../../js/vue.js"></script>
    </head>
    <body>
        <div id="app">
    
            <span v-for="(m,index) in pagePeople">
                <div v-if="m.state!=true "   @click="m.state=true">
                    {{index}}-{{m.name}}
            </div>
                <div v-if="m.state==true ">
                        <input v-model="m.name">
    
                </div>
                </br></span>
            <br>
            <input v-model="people.name" >
            <button @click="LastPage">上一页</button>
            <button @click="nextPage">下一页</button>
            <span>当前页数:  {{page}} </span>
    
            <button @click="addpeople">添加</button>
        </div>
            <script>
              /*  <!--
    
                        实现翻页功能
    
                        js方法:
    
                                // 1.只保留整数部分(丢弃小数部分)
                                        parseInt(5.1234);// 5
                                        // 2.向下取整(<= 该数值的最大整数)和parseInt()一样
                                        Math.floor(5.1234);// 5
                                        // 3.向上取整(有小数,整数就+1)
                                        Math.ceil(5.1234);
    
                                        // 4.四舍五入(小数部分)
                                        Math.round(5.1234);// 5
                                        Math.round(5.6789);// 6
                                        // 5.绝对值
                                        Math.abs(-1);// 1
                                        // 6.返回两者中的较大值
                                        Math.max(1,2);// 2
                                        // 7.返回两者中的较小值
                                        Math.min(1,2);// 1
                                        // 随机数(0-1)
                                        Math.random();
                -->*/
                new Vue({
                    el:'#app',
                    data:{
                        peoples:[],
                        people:{
                            name:'',
                            state:false,
                        },
                        page:1,
                        pageSize:2,
    
                    },
                    methods:{
                        addpeople:function () {
                            if(this.people.name=='')
                                return;
                            this.peoples.push({
                                name:this.people.name,
                                state:false,
                            });
                            this.people.name='';
                        },
                        nextPage:function () {
                            //Math.ceil  :向上取整   总长度除以大小 大于当前页数 就++
                            if(Math.ceil((this.peoples.length/this.pageSize))>this.page) {
                                this.page++;
                            }
                        },
                        LastPage:function () {
                            if(this.page<=1)
                                return;
                            this.page--;
                        }
                    },
                    computed:{
                        pagePeople:function () {
                            let begin=(this.page-1)*this.pageSize;
    
    
                                //截取
                            return this.peoples.slice(begin,this.pageSize+begin);
                        }
                    },
                    component:{
                       indexM:function () {
    
                       }
                    }
                })
    
            </script>
    </body>
    </html>

    购物车:

          

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="../../js/vue.js"></script>
        <style>
                    table{
                        margin: 0px     00px;
                    }
        </style>
    </head>
    <body>
    <div id="app">
        <div v-if="books.length">
                <table border="1px">
                        <tr>
                            <td>书籍名称</td>
                            <td>出版日期</td>
                            <td>价格</td>
                            <td>购买数量</td>
                            <td>操作</td>
                        </tr>
                    <tr v-for=" (m,index) in books"  >
                        <td >{{m.name}}</td>
                        <td >{{m.time}}</td>
                       <!-- <td >${{item.price.toFixed(2)}}</td>-->
                        <td> ${{m.price.toFixed(2) }}</td>
                        <td><button @click="subcount(index)">-</button>{{m.count}}<button @click="addcount(index)">+</button></td>
                        <td><button  @click="remove(index)">移除</button></td>
                    </tr>
                </table>
        <span >总价: {{results}}</span>
        </div>
        <span v-else>购物车为空</span>
    </div>
            <script>
                const app =new Vue({
                    el:'#app',
                    data:{
                        books:[
                            {name:'hsux',time:'2016-6',price:556,count:1},
                            {name:'hsux',time:'2019-6',price:56,count:1},
                            {name:'hsux',time:'2016-6',price:5,count:1}
                        ],
                        istrue:true,
                    },
                    methods:{
                        remove(index){
                                this.books.splice(index,1);
                        },
                        //获取没个的下标
                        subcount(index){
                           if(this.books[index].count>=2){
                                return this.books[index].count--;
                            }
                        },
                        addcount(index){
                            return this.books[index].count++;
                        }
                    },
                    //局部过滤器
                    filter:{
                          showprice(price){
                             console.log(price);
                          return '$'+price.toFixed(2);
                      }
                    },
                    computed:{
                        results(){
                           /* let resultss=0;
                            for (let i = 0; i < this.books.length; i++) {
                                resultss+=this.books[i].price*this.books[i].count;
                            }*/
                           return this.books.reduce(function (privalue,book) {
                               return privalue+book.price*book.count;
                           },0)
                            //高阶函数 filter/map/reduce
                            /**filter中的回调函数有一个要求,必须传入一个布尔值
                             * 但true的时候 ,函数内部会自动将这次的n加入到一个新的数组中
                             * false  函数会自动过滤这次的值
                             *
                             */
                            let num=[12,6,30,650,65,40];
    
                           let nums= num.filter(function (n) {
                                return n<100;
                            })
                            console.log(nums);
                           //map函数的使用
                            let nums2=nums.map(function (n) {
                                        return n*2;
                            })
                            console.log(nums2);
                            //reduce:对数组中的内容进行汇总的
                            /**
                             *   let nums3= nums2.reduce(function (preValue,n) {
                              return preValue+n;
                           },0)这里的0是初始值
                             */
    
                           let nums3= nums2.reduce(function (preValue,n) {
                              return preValue+n;
                           },0)
                            console.log(nums3);
    
    
                        },
                    }
                })
            </script>
    </body>
    </html>
  • 相关阅读:
    Perl-统计某电路面积、功耗占比(NVDIA2019笔试)
    Tensorflow 之 loss
    Verilog-同步FIFO
    Verilog-case、casez和casex的区别
    modelsim使用命令
    进制转换工具
    串口写入和读取数据
    串口发送数据——字符串发送与十六进制发送的区别
    字符转换为十六进制 字符串转化为字符数组
    VS2008编了个MFC对话框,编译链接都没有问题,但是运行出来的对话框完全不能点击
  • 原文地址:https://www.cnblogs.com/jflalove/p/11851674.html
Copyright © 2011-2022 走看看