使用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 相关文章推荐
Discuz! 6.1_jQuery兼容问题
Sep 23 Javascript
关于COOKIE个数与大小的问题
Jan 17 Javascript
基于jquery的loading 加载提示效果实现代码
Sep 01 Javascript
node.js中的fs.link方法使用说明
Dec 15 Javascript
js实现不提交表单获取单选按钮值的方法
Aug 21 Javascript
jquery获取css的color值返回RGB的方法
Dec 18 Javascript
D3.js实现折线图的方法详解
Sep 21 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
js Array.slice的8种不同用法示例
Jul 10 Javascript
vue路由教程之静态路由
Sep 03 Javascript
Layui Form 自定义验证的实例代码
Sep 14 Javascript
layui 解决form表单点击无反应的问题
Oct 25 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
人族 Terran 基本策略
2020/03/14 星际争霸
十天学会php之第三天
2006/10/09 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
Laravel多域名下字段验证的方法
2019/04/04 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
2016/08/30 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
Python smallseg分词用法实例分析
2015/05/28 Python
Python实现二叉堆
2016/02/03 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
土建资料员岗位职责
2014/01/04 职场文书
大学生毕业求职信
2014/06/12 职场文书
学习党章的体会
2014/11/07 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
办公室禁烟通知
2015/04/23 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
创业计划书之美甲店
2019/09/20 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
Python实现抖音热搜定时爬取功能
2022/03/16 Python