vue实现商品累计效果
vue实现商品累计需要以下几点

<div id="main">
<div class="con">
<h1>PRODUCT</h1>
<div class="add">
<span>商品:</span>
<input
v-model.trim="goods"
>
<span>价格:</span>
<input
v-model.trim="price"
@input="judge"
>
<button @click="add">添加</button>
</div>
<ul>
<li v-for="(val,key) in arr"
:class="{active:val.active}"
>
<input type="checkbox" v-model="val.active">
<span>{{val.name}}</span>
<span>${{val.price}}</span>
<!-- <span>修改</span> -->
<span @click="rm(val.id)">删除</span>
</li>
</ul> <div class="folter">
<span>total</span>
<span>{{sum}}</span>
</div>
<div
class="kuang"
:style="{display:tips}"
>
<span>确定要删除么?</span>
<button @click="sure">确定</button>
<button @click="cancel">取消</button>
</div> </div> </div>
<script src="../js/vue.min.js"></script>
/*
1、添加商品
2、选中
3、删除
4、总计
*/
new Vue({
el:'#main',
created(){
// //请求数据,添加数据
// fetch('./data.json')
// .then(e=>e.json())
// .then(d=>{
// console.log(d);
// this.arr.push(...d);
// })
},
data:{
arr:[
{
id:1,
name:'apple',
price:20,
active:true
},{
id:2,
name:'orange',
price:23,
active:false
},
{
id:3,
name:'banana',
price:40,
active:false
}
],
goods:'',//商品
price:'',//价格
tips:'none',//提示框
num:null
},
methods:{
judge(){
//判断输入的价格是否为数字,且小于4位,小数保留两位数
if(!/^\d{1,4}(\.\d{1,2})?$/.test(this.price)){
alert('输入正确的价格');
}
},
add(){
let {price,goods} = this;
this.arr.unshift(
{
id:Date.now(),
name:goods,
price:price,
active:false
}
)
this.val = this.price = '';
},
rm(id){
this.tips = 'block';
this.num = id //把要删除的id,赋值给this.num,为了找到删除的那项
console.log(this.num);
},
sure(){
//把不是this.num的数据保留下来(过滤删除的id对应的数据)
this.arr = this.arr.filter(e=>e.id!=this.num);
this.tips = 'none';
this.num = null;
},
cancel(){
//隐藏弹框
this.tips = 'none';
this.num = null;
}
},
computed:{
/*
是vue专有的一个计算属性
当数据发生变化的时候,通过变化的数据,做另一件事
只要使用,一开始就会执行一次,之后只要数据发生变化就执行 定义:
函数(){
return 是什么,显示就是什么
}
使用:
{{函数名}} 注意:
函数名不要跟data中的数据一致
*/
sum(){
return '$' + this.arr.filter(e=>e.active).reduce((prev,num)=>prev+num.price,0);
}
}
});
vue实现商品累计效果的更多相关文章
- vue实现全选效果
vue实现全选效果 接触vue快半年了,记得刚用vue做项目的时候遇到一个全选功能,当时到处百度也没有找到怎么实现,最后还是用了jquery进行dom操作实现的. 今天没事就顺手写了一个,感觉很简单, ...
- vue实现跑马灯效果
vue实现跑马灯效果为阿中哥哥应援 1.效果图 2.实现代码 <!DOCTYPE html> <html lang="en"> <head> & ...
- vue实现穿梭框效果
vue实现穿梭框效果 一.总结 一句话总结: 用两个数组分别记录左右框框里面的值,用两个数组绑定checkbox,用来记录选中的checkbox值,根据选中的checkbox的值实现删除增加即可 1. ...
- 基于Vue实现拖拽效果
参考地址:基于Vue实现拖拽效果 参考链接中讲的比较详细,我只使用了其中自定义指令的方法.整体代码如下: <template> <!-- 卡片 --> <div clas ...
- 黑马vue---10-11、Vue实现跑马灯效果
黑马vue---10-11.Vue实现跑马灯效果 一.总结 一句话总结: 1. 给 [浪起来] 按钮,绑定一个点击事件 v-on @ 2. 在按钮的事件处理函数中,写相关的业务逻辑代码:拿到 ...
- vue实现选项卡切换效果
效果如下: 说明: 这里我使用的原理是利用vue中的v-show/显示隐藏指令,当为true的时候显示,为false的时候隐藏 1html代码: <head> <meta chars ...
- vue实现轮播效果
vue实现轮播效果 效果如下:(不好意思,图有点大:) 功能:点击左侧图片,右侧出现相应的图片:同时左侧边框变颜色. 代码如下:(也可以直接下载文件) <!DOCTYPE html> &l ...
- Vue 实现展开折叠效果
Vue 实现展开折叠效果 效果参见:https://segmentfault.com/q/1010000011359250/a-1020000011360185 上述链接中,大佬给除了解决方法,再次进 ...
- Vue过渡和动画效果展示(案例、GIF动图演示、附源码)
前言 本篇随笔主要写了Vue过渡和动画基础.多个元素过渡和多个组件过渡,以及列表过渡的动画效果展示.详细案例分析.GIF动图演示.附源码地址获取. 作为自己对Vue过渡和动画效果知识的总结与笔记. 因 ...
随机推荐
- QML用Qt.labs.settings实现保存用户设置
举个简单的例子: main.cpp中设置程序信息 QGuiApplication::setApplicationName("Gallery"); QGuiApplication:: ...
- Android ListView item 点击事件失效问题的解决
关于ListView点击无效,item无法相应点击事件的问题,网上有很多, 大致可分为俩种情况, 一种是 item中存在 ImageButton 等可以点击的组件,这会抢先获得ListView的焦点. ...
- Integer’s Power HDU - 3208(容斥原理)
找出(l,r)内的所有的指数最大的次方和 因为一个数可能可以看成a^b和c^d,所以我需要去重,从后往前枚举幂数,然后找可以整除的部分,把低次幂的数去掉. 然后开n方的部分,先用pow()函数找到最接 ...
- Nginx反向代理后端多节点下故障节点的排除思路
仔细想来,其实是个非常简单的问题:开发和运维觉得两个后端节点跑起来压力太大了,就扩充了两个新的后端节点上去,这一加就出问题了,访问时页面间歇性丢失,这尼玛什么情况...想了半天没思路,查了Nginx的 ...
- ftp sun jdk自带
package com.italktv.colnv.stat.util; import java.io.File; import java.io.FileInputStream; import jav ...
- Python使用import导入相对路径的其他py文件
假如有如下的目录结构 . ├── setup.py ├── main.py ├── mod/ │ └── mod.py └── sub/ └── sub.py 情况1:setup.py导入main ...
- 关于TSql
1.Sql:结构化查询语言(Structrued Query Language) 2.TSql:是Sql语言的另一种版本,且只能在SqlServer中使用.和Sql不同的是,TSql中增加了对变量 ...
- Command `bundle` unrecognized. Make sure that you have run `npm install` and that you are inside a react-native project.
呃呃,在写下面的代码时出现的问题,解决办法是npm install或者yarn,如果yarn报错,再npm install就可以了 下面的是携程App首页的样式,有轮播,我没有实现出来 代码如下: / ...
- C++基础知识--DAY2
昨天我们主要是讲的C++相对于C语言的变化,结尾讲述了一点引用的基础知识,要明白,引用就是对一个变量取别名,在C++中需要用指针的都可以思考是否可以用引用来代替. 1. 常引用 常引用(const s ...
- postgresql安装概览
先从官网下载解压包:https://www.enterprisedb.com/download-postgresql-binaries 这种是解压后,进行配置就可以使用. 另外一种是要用./confi ...