首页 > 其他 > 详细

vue学习笔记3 购物车 实例

时间:2020-05-13 23:56:47      阅读:102      评论:0      收藏:0      [点我收藏+]

1 html

技术分享图片
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>购物车</title>
        <script src="vue.js"></script>
        <link rel="stylesheet" type="text/css" href="style.css" />
    </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="(item,index)  in books">
                    <td>{{item.id}}</td>
                    <td>{{item.name}}</td>
                    <td>{{item.date}}</td>
                    <td>{{item.price | getFinalPriceF}}</td>
                        
                    <td>
                        <button @click=‘decrement(index)‘ v-bind:disabled=" item.count > 1 ? false :true">-</button>
                        {{item.count}}
                        <button @click=‘increment(index)‘>+</button>
                    </td>
                    <td>
                        <button @click="removeHandle(index)">移除</button>
                    </td>
                </tr>
            </tbody>
        </table>
        <h1>总价格:{{totalPrice |getFinalPriceF}}</h1>
       </div>
       <h2 v-else>购物车为空</h2>
      </div>
    </body>
    <!--js要加载在最后面!!-->
    <script src="mian.js" type="text/javascript"> </script>
</html>
View Code

2  main.js

技术分享图片
const app=new Vue({
    el:"#app",
    data:{
        books:[
            {
                id:1,
                name:‘《算法导论》‘,
                date:‘2010-8‘,
                price:85.00,
                count:1
            },
            {
                id:2,
                name:‘《UNIX编程艺术》‘,
                date:‘2010-9‘,
                price:75.00,
                count:1
            },
            {
                id:3,
                name:‘《编程珠玑》‘,
                date:‘2000-8‘,
                price:51.00,
                count:1
            },
            {
                id:4,
                name:‘《代码大全》‘,
                date:‘2008-8‘,
                price:95.00,
                count: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
        }
    },
    methods:{
        getFinalPrice(price){
            return ‘¥‘+ price.toFixed(2)
        },
        decrement(index){
            if(this.books[index].count>=1){
                this.books[index].count--
            }
        },
        increment(index){
            this.books[index].count++
        },
        removeHandle(index){
            this.books.splice(index,1)
        }
    },
    filters:{ //过滤器
        getFinalPriceF(price){
            return ‘¥‘+ price.toFixed(2)
        }
    }
})
View Code

3 style.css

技术分享图片
table {
    border:1px solid #e9e9e9;
    border-collapse:collapse;
    border-spacing:0;
}

th,td {
    padding:8px 16px;
    border:1px solid #e9e9e9;
    text-align:left;
}
th {
    background-color:#f7f7f7;
    color:#5c6b77;
    
}
View Code

技术分享图片

过滤器

filters:{ //过滤器
        getFinalPriceF(price){
            return ‘¥‘+ price.toFixed(2)
        }
    }

使用方法

<h1>总价格:{{totalPrice |getFinalPriceF}}</h1>

 idsabled属性

 v-bind:disabled=" item.count > 1 ? false :true"

当数量小于等于1时 按钮不可用

vue学习笔记3 购物车 实例

原文:https://www.cnblogs.com/polax/p/12885490.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!