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过渡和动画效果知识的总结与笔记. 因 ...
随机推荐
- 【CF865D】Buy Low Sell High(贪心)
[CF865D]Buy Low Sell High(贪心) 题面 洛谷 CF 题解 首先有一个\(O(n^2)\)的\(dp\)很显然,设\(f[i][j]\)表示前\(i\)天手中还有\(j\)股股 ...
- poj1845 sumdiv (因数的和)
首先分解质因数,$A^B=p_1^{m_1B}p_2^{m_2B}...p_n^{m_nB}$ 然后的话,它的所有因数的和就是$\prod{(1+p_i^1+p_i^2+...+p_i^n)}$ 用一 ...
- 【UNR #1】火车管理
题目描述 uoj 旗下有一个火车站,用来管理属于 uoj 的小火车. 火车站一共有 nn 条编号为 1,…,n1,…,n 的,只有一端的用来存放小火车的铁路,由于小火车特殊的构造,每条铁路可以停放无数 ...
- BZOJ3779重组病毒LCT
题目描述 黑客们通过对已有的病毒反编译,将许多不同的病毒重组,并重新编译出了新型的重组病毒.这种病毒的繁殖和变异能力极强.为了阻止这种病毒传播,某安全机构策划了一次实验,来研究这种病毒.实验在一个封闭 ...
- 51nod 1005 1027 1029 高精度
Java大数用法参考:https://www.cnblogs.com/jin-nuo/p/5313205.html 1005 大数加法: import java.util.*; import java ...
- 【洛谷P2257】YY的GCD
题目大意:有 \(T\) 个询问,每个询问给定 \(N, M\),求 \(1\le x\le N, 1\le y\le M\) 且 \(gcd(x, y)\) 为质数的 \((x, y)\) 有多少对 ...
- Java Scanner篇
Scanner 翻译解释为扫描器 Java中用于控制台的的数据输入 包:import java.util.Scanner 使用方法:Scanner reader=new Scanner(System. ...
- 第二十六节,滑动窗口和 Bounding Box 预测
上节,我们学习了如何通过卷积网络实现滑动窗口对象检测算法,但效率很低.这节我们讲讲如何在卷积层上应用这个算法. 为了构建滑动窗口的卷积应用,首先要知道如何把神经网络的全连接层转化成卷积层.我们先讲解这 ...
- 常用工具类(System,Runtime,Date,Calendar,Math)
一.System: 一个java.lang包中的静态工具类. 三大字段: static PrintStream err “标准”错误输出流. static InputStream in “标准”输入流 ...
- js数组歌
判断是不是数组,isArray最靠谱. 按照条件来判断,every/some给答案 是否包含此元素,includes最快速. find/findIndex很相似,按条件给第一个值. indexOf/l ...