当前位置:
首页 > temp > JavaScript教程 >
-
第八十三篇:Vue购物车(四) 总价计算
好家伙,
1.总价计算
来了,又先是一波分析:
我们用一个计算属性amt
我们把item中被勾选的项用一个过滤器过滤器来
然后用一个循环相加,把商品的价格乘以商品的数量,
把这个总值返回出去,
然后组件传值,把它渲染出来
App.vue中用于计算总价的计算属性amt:
amt(){
//1.先filter过滤
//2.再reduce累加
return this.list
.filter(item=>item.goods_state)
.reduce((total,item)=> (total+=item.goods_price*item.goods_count),0)
}
在Footer.vue组件中,
<div>
<span>合计:</span>
<span class="total-price">¥{{ amount }}</span>
</div>
props定义:
props:{
isfull:{
type:Boolean,
default:true
},
amount:{
type:Number,
default:0
}
},
App.vue中进行组件调用时,组件调用中通过props传值
<Footer :isfull="fullState"
@full-change="getFullState"
:amount="amt"></Footer>
于是,就行了
(也没有完全行,数值统计没出来,理论上能行,但出了点bug,在修)
Footer.vue的代码如下:
<template>
<div class="footer-container">
<!-- 左侧的全选 -->
<div class="custom-control custom-checkbox">
<!-- 全选框状态与isFull绑定 -->
<input type="checkbox"
class="custom-control-input"
id="cbFull"
:checked="isfull"
@change="fullChange" />
<label class="custom-control-label" for="cbFull">全选</label>
</div>
<!-- 中间的合计 -->
<div>
<span>合计:</span>
<span class="total-price">¥{{ amount }}</span>
</div>
<!-- 结算按钮 -->
<button type="button" class="btn btn-primary btn-settle">结算({{ 0 }})</button>
</div>
</template>
<script>
export default {
props:{
isfull:{
type:Boolean,
default:true
},
amount:{
type:Number,
default:0
}
},
methods:{
//监听到全选状态的变化
fullChange(e){
this.$emit('full-change',e.target.checked)
}
}
}
</script>
<style lang="less" scoped>
.footer-container {
font-size: 12px;
height: 50px;
width: 100%;
border-top: 1px solid #efefef;
position: fixed;
bottom: 0;
background-color: #fff;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 10px;
}
.custom-checkbox {
display: flex;
align-items: center;
}
#cbFull {
margin-right: 5px;
}
.btn-settle {
height: 80%;
min-width: 110px;
border-radius: 25px;
font-size: 12px;
}
.total-price {
font-weight: bold;
font-size: 14px;
color: red;
}
</style>
目前这个购物车bug太多了,正在改
出处:https://www.cnblogs.com/FatTiger4399/p/16290746.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数