前端开发:Vue写一个购物车

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

https://cdn.bootcss.com/bootstrap/3.0.2/css/bootstrap.min.css"/>

</head>

<body>

<div id="app">

<table>

<thead>

<tr>

<th>产品编号</th>

<th>产品名字</th>

<th>购买数量</th>

<th>产品单价</th>

<th>产品总价</th>

<th>操作</th>

</tr>

</thead>

<tbody>

<tr v-for="(item ,index) in message">

<[email protected]="jia(index)">{{item.id}}</td>

<td>{{item.name}}</td>

<td>

<buttontype="button" class="btn tn-primary"@click="subtract(index)">-</button>

<inputtype="text" v-model="item.quantity">

<button type="button"class="btn tn-primary"@click="add(index)">+</button>

</td>

<td>{{item.price |filtermoney}}</td>

<!--<td>{{arr[index].one}}</td>-->

<td>{{item.price*item.quantity | filtermoney}}</td>

<td>

<buttontype="button" class="btn btn-danger"@click="remove(index)">移除</button>

</td>

</tr>

<tr>

<td>总购买价

</td>

<td>

{{animatenum |filtermoney}}

</td>

<td>总购买数量

</td>

<td>

</td>

<tdcolspan="2">

<buttontype="button" class="btn btn-danger"@click="empty()">清空购物车</button>

</td>

</tr>

</tbody>

</table>

<p v-if="message.length===0">您的购物车为空

https://unpkg.com/[email protected]">

https://cdn.bootcss.com/vue/2.2.3/vue.min.js">

<script>

var vm=new Vue({

el:"#app",

data:{

totalPrice:0,

animatenum:0,

message:[

{

id: 007,

name: ‘iphone5s‘,

quantity: 3,

price: 4000

},{

id: 1340,

name: ‘iphone5‘,

quantity: 9,

price: 3000

},{

id: 7758,

name: ‘imac‘,

quantity: 4,

price: 7000

},{

id: 2017,

name: ‘ipad‘,

quantity: 5,

price: 6000

}

]

},

watch:{

toComput2:function(newValue,oldValue){

this.tween(newValue,oldValue);

}

},

computed:{

//计算总金额

toComput2:function(){

varvm=this;

//每次进来要重置总金额

vm.totalPrice=0;

this.message.forEach(function(mess){

vm.totalPrice+=parseInt(mess.price*mess.quantity);

})

returnthis.totalPrice;

}

},

filters:{

filtermoney:function(value){

return ‘¥‘+value ;

}

},

mounted:function(){

this.tween(‘97000‘,‘0‘);

},

methods:{

//计算总数的方法为什么写在methods里面就不行?

toComput:function(){

varvm=this;

vm.message.forEach(function(mess){

vm.totalPrice+=parseInt(mess.price*mess.quantity);

})

returnvm.totalPrice;

},

add:function(index){

varvm=this;

vm.message[index].quantity++;

},

subtract:function(index){

varvm=this;

vm.message[index].quantity--;

if(vm.message[index].quantity<=0){

if(confirm("你确定移除该商品?")) {

vm.message.splice(index,1)

}

}

},

remove:function(index){

varvm=this;

if(confirm("你确定移除该商品?")) {

vm.message.splice(index,1)

}

},

empty:function(){

varvm=this;

vm.message.splice(0,vm.message.length);

},

jia:function(index){

varvm=this;

vm.arr[index].one++;

},

tween:function(newValue,oldValue){

varvm=this;

vartwen=new TWEEN.Tween({animatenum:oldValue});

functionanimate() {

requestAnimationFrame(animate);

TWEEN.update();

};

twen.to({animatenum:newValue},750);

twen.onUpdate(function(){

//toFixed();保留几位小数

vm.animatenum= this.animatenum.toFixed();

})

twen.start();

animate();

}

}

});

</script>

</body>

</html>

【web前端交流学习群018】群号498854752

时间: 2024-11-24 18:07:01

前端开发:Vue写一个购物车的相关文章

Vue写一个购物车

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.0.2/css/bootstrap.min.css"/> </head> <body> <div id="app&

前端用js写一个函数实现KB、MB、GB、TB单位转换

需求:用js写一个函数实现KB.MB.GB.TB单位转换 实现思路: 当函数参数值小于等于1000时,参数除以1000,即可得到最小单位kb,赋值给变量_integer:当_integer值大于1000时,kb值除以1000,即可得到mb,赋值给变量_integer:以此类推. 将单位保存在数组中, 将转换后的值与单位进行拼接即可得到转换后的单位. 代码展示: <!DOCTYPE html> <html lang="en"> <head> <m

用vue写一个仿简书的轮播图

原文地址:Bougie的博客 1.先展示最终效果: 2.解决思路 Vue的理念是以数据驱动视图,所以拒绝通过改变元素的margin-top来实现滚动效果.写好css样式,只需改变每张图片的class即可实现轮播效果.动画效果交给transition完成.可以将轮播图看成两个(mainSlide和extraSlide),各个图片的位置如图所示: 3.代码实现 各个slide的样式: $width: 800px; // 容器宽度 $height: 300px; // 容器高度 $bWidth: 50

Vue学习—Vue写一个图片轮播组件

1.先看效果: 熟悉的图片轮播,只要是个网站,百分之90以上会有个图片轮播.我认为使用图片轮播. 第一可以给人以一种美观的感受,而不会显得网站那么呆板, 第二可以增加显示内容,同样的区域可以显示更多内容. 2.每学一个新东西 ,图片轮播都是很好的练手案例,而且,也很实用. 3.基本要求:页面加载,自动播放.鼠标悬停,停止播放.鼠标离开,继续播放 点击左右箭头切换上一张,下一张图片. 下方小圆点显示当前位第几张图片. 4.使用Vue实现,想法: 5.示例代码 结构html: <template>

在上线项目中,用Vue写一个星级评价

先看一下效果: html: <div class="big-star-box"> <img :src="imgNum>0 ? srcStar : srcNoStar" @click="imgItem(1)"> <img :src="imgNum>1 ? srcStar : srcNoStar" @click="imgItem(2)"> <img :src

利用html5的本地存储写的一个购物车

好久没有写博客园了,很多知识没有记录下来:可惜: 这几天在开发微信,也写了一个订餐平台的微网站,里面需要写一个购物车: 这里主要是把商品的部分信息以json格式保存在sessionstorage中,还有商店信息也是: 以json格式保存有什么好处呢,轻量级的传输,大概是这样吧!另外,如果我们把商品信息分开存储,就会导致有多条的sessionstorage项,那以后实现在两家商店同时购物的话,就不可能区分每家商店的商品了: 如果代码是自己写的,就有版权,这么说.对吧,是在软件工程师书上看到的: 不

用java代码写一个简单的网上购物车程序

1 需求:1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性.2.写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法. 2 3 3.写一个购物车类,有添加商品方法.查看订单信息,删除商品,修改商品,清空购物车,求购物车中所有商品总金额方法.4.写一个测试类,测试上述方法. 4 5 商品类: 6 [java] view plain copy 7 8 public class Product { 9 private int productId;// 商品编号 10 privat

【前端】Vue.js经典开源项目汇总

Vue.js经典开源项目汇总 原文链接:http://www.cnblogs.com/huyong/p/6517949.html Vue是什么? Vue.js(读音 /vju?/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vue 完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用. Vue.js 的目标是通过

前端开发手册

做前端有一段时间了,但是总觉得前端就是写写界面就行了,其实不然.一个合格的前端责任是很重大的.本文介绍重点介绍了前端人员需要掌握的一些技能.供大家参考.如果有一些对前端开发还有疑惑的童鞋,可以来看看. 本文来源:http://wiki.jikexueyuan.com/project/fedHandlebook/,建议阅读在线版本:https://dwqs.gitbooks.io/frontenddevhandbook/ 什么是前端开发者? 一个前端开发者, 要会使用Web技术(如:HTML,CS