使用vue2实现购物车和地址选配功能


Posted in Javascript onMarch 29, 2018

首先,vue基础js写法

new Vue({
  el:"#app",
  //模型
  data:{
  },
  filters:{
  },
  mounted:function(){
    this.$nextTick(function(){
    //初始化调用
    });
  },
  computed:{
    //实时计算
  },
  methods:{
  }
});

v-for

<li v-for="(item,index) in productList">
  <div class="item-name">{{item.productName}}</div>
</li>

v-model

(实时更新)

<input type="text" value="0" disabled v-model="item.productQuantity">
<div class="item-price-total">{{item.productQuantity}}</div>

v-bind

<a href="javascript:;" class="item-check-btn" v-bind:class="{'check':item.checked}">
<!--可通过更改item.checked的值设置是否选中-->
<!--必须用v-bind 不可直接在class里面直接使用{{}}-->
<!--v-bind:class= 可简写为 :class= -->

filters过滤器的使用

1.html引用方式

<div class="item-price">{{item.productPrice | money('元')}}</div>

2.过滤器

filters:{
  formatMoney:function(value,type){
    return "¥"+value.toFixed(2)+ type;
  }
},

3.全局过滤器(写在new Vue的外面)

Vue.filter("money",function(value,type){
  return "¥"+value.toFixed(2) + type; //保留两位小数 结果eg:¥19.00元
});

调用methods中的方法:

@click="method(param)"
//或者
@click="delFlag=false"
@click="limitNum=addressList.length"

computed 实时计算

如下:默认显示三条数据,点击more 显示所有

<li v-for="(item,index) in filterAddress">
<div class="shipping-addr-more">
<a class="addr-more-btn up-down-btn" href="javascript:" @click="limitNum=addressList.length">
  more
  <i class="i-up-down">
   <i class="i-up-down-l"></i>
   <i class="i-up-down-r"></i>
  </i>
 </a>
</div>

data:{
    limitNum:3
  },
computed:{
  filterAddress:function(){
    return this.addressList.slice(0,this.limitNum);
  }
},

先提出一两个经典的实例

1.以下实现了对循环卡片的点击 选中

<li v-for="(item,index) in filterAddress" v-bind:class="{'check':index==currentIndex}" 
@click="currentIndex=index">
<!--其中currentIndex在js里需要定义-->

2.以下实现了对固定卡片的点击 选中

<ul>
  <li v-bind:class="{'check':shippingMethod==1}" @click="shippingMethod=1">
   <div class="name">标准配送</div>
   <div class="price">Free</div>
  </li >
  <li v-bind:class="{'check':shippingMethod==2}" @click="shippingMethod=2">
   <div class="name">高级配送</div>
   <div class="price">180</div>
  </li>
 </ul>
 <!--其中shippingMethod在js里需要定义-->

题外话:由于本人小白,学一点是一点,额外记录一下辅助弹出框 遮罩层的写法

<div class="md-overlay" v-if="delFlag"></div>

vue2的js语法 贴几个 方便查用

1.调用后端方法

var _this = this;
this.$http.get("data/address.json").then(function(response){
    _this.addressList = response; //这里不能直接用this 此this非彼this 所以只能声明_this
}); 
//以下为ES6写法,就可以直接用this了
let _this = this;  //没用,就放这看看~
this.$http.get("data/cartData.json",{"id":123}).then(res=>{
  this.productList = res.data.result.list;
});

2.forEach循环

this.productList.forEach(function(item,index){
  if(typeof item.checked == 'undefined'){ 
  //如果item中没有checked属性 在item对象中添加checked属性,值为true
    _this.$set(item,"checked",true);//局部注册
    Vue.set(item,"checked",true);//全局注册
  }
});

附上链接:码云地址vue2_study

总结

以上所述是小编给大家介绍的使用vue2实现购物车和地址选配功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用Javscript实现表单复选框的全选功能
May 25 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
Dec 12 Javascript
js通过八个点 拖动改变div大小的实现方法
Mar 05 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
May 04 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
JS实现的表头列头固定页面功能示例
Jan 10 Javascript
JSONP跨域请求
Mar 02 Javascript
js操作二进制数据方法
Mar 03 Javascript
微信小程序swiper禁止用户手动滑动代码实例
Aug 23 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
Nov 01 Javascript
js实现拖拽与碰撞检测
Sep 18 Javascript
JavaScript实现滑块验证解锁
Jan 07 Javascript
vue axios请求拦截实例代码
Mar 29 #Javascript
JavaScript面试出现频繁的一些易错点整理
Mar 29 #Javascript
jQuery实现的上传图片本地预览效果简单示例
Mar 29 #jQuery
详解Javascript中new()到底做了些什么?
Mar 29 #Javascript
Koa2 之文件上传下载的示例代码
Mar 29 #Javascript
AngularJS下$http服务Post方法传递json参数的实例
Mar 29 #Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
Mar 29 #Javascript
You might like
法压式咖啡之制作法
2021/03/03 冲泡冲煮
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
Python中的作用域规则详解
2015/01/30 Python
python操作mysql数据库
2017/03/05 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
python——全排列数的生成方式
2020/02/26 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
毕业生找工作推荐信
2013/11/21 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
入党综合考察材料
2014/06/02 职场文书
文秘自荐信
2014/06/28 职场文书
法人代表证明书
2014/09/18 职场文书
平凡的世界读书笔记
2015/06/25 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
Python移位密码、仿射变换解密实例代码
2021/06/27 Python