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过渡和动画效果知识的总结与笔记. 因 ...
 
随机推荐
- Leetcode 349. 两个数组的交集 By Python
			
给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2] 示例 2: 输入: nums1 = [4,9,5], ...
 - 添加 [DataContract]  到 Entity Framework 6.0 POCO Template
			
1. 添加using System.Runtime.Serialization; 找到这行 includeCollections ? (Environment.NewLine + "usin ...
 - linux中,使用cat、head、tail命令显示文件指定行
			
小文件可以用cat(也可以用head.tail) 显示文件最后20行:cat err.log | tail -n 20 显示文件前面20行:cat err.log | head -n 20 从20行开 ...
 - PHP基础学习----函数
			
一.函数的定义 function 函数名([参数1,参数2,参数3,...]){ 函数体: [return 返回值;] } //函数调用 函数名([参数1,参数2,参数3,...]): 二.可变函数 ...
 - Python By 360、小米
			
小米 乱谈Python并发 说实话,我一直觉得PHP真的是最好的语言,不仅养活了一大批PHP程序员,同时还为安全人员提供了大量的就业机会.然而,令人唏嘘的是,安全界很多人其实是吃着Python的饭,操 ...
 - HDU--4825 Xor Sum (字典树)
			
题目链接:HDU--4825 Xor Sum mmp sb字典树因为数组开的不够大一直wa 不是报的 re!!! 找了一下午bug 草 把每个数转化成二进制存字典树里面 然后尽量取与x这个位置上不相同 ...
 - C# Winfrom 发送邮件验证码&Timer控件
			
邮件发送: //定义一个全局的string类型的验证码: string yzm = ""; //定义一个字符串,这里面包含所有需要的验证码的元素: string a = " ...
 - notepad问题汇总
			
右键无法设置为默认打开方式:https://blog.csdn.net/jl1134069094/article/details/50749075
 - django中实现组合搜索
			
一.简介 # 组合搜索# 技术方向:自动化,测试,运维,前端# 分类:Python Linux JavaScript OpenStack Node.js GO# 级别:初级 中级 高级 骨灰级 有4张 ...
 - numpy学习之前的必要数学知识:线性代数
			
行列式 主要内容 1.行列式的定义及性质 2.行列式的展开公式 一.行列式的定义 1.排列和逆序 排列:由n个数1,2,…,n组成的一个有序数组称为一个n级排列,n级排列共有n!个 逆序:在一个排列中 ...