使用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 相关文章推荐
showModalDialog在谷歌浏览器下会返回Null的解决方法
Nov 27 Javascript
使用canvas实现仿新浪微博头像截取上传功能
Sep 02 Javascript
jquery+ajax实现注册实时验证实例详解
Dec 08 Javascript
D3.js实现折线图的方法详解
Sep 21 Javascript
Bootstrap基本组件学习笔记之面板(14)
Dec 08 Javascript
canvas绘制爱心的几种方法总结(推荐)
Oct 31 Javascript
微信小程序使用wxParse解析html的实现示例
Aug 30 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
JavaScript判断对象和数组的两种方法
May 31 Javascript
Vue内部渲染视图的方法
Sep 02 Javascript
js通过canvas生成图片缩略图
Oct 02 Javascript
TypeScript 使用 Tuple Union 声明函数重载
Apr 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
php自动加载机制的深入分析
2013/06/08 PHP
php向js函数传参的几种方法
2014/08/10 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
跟老齐学Python之dict()的操作方法
2014/09/24 Python
在Python的循环体中使用else语句的方法
2015/03/30 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
Python深度优先算法生成迷宫
2018/01/22 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
python numpy存取文件的方式
2020/04/01 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
python使用smtplib模块发送邮件
2020/12/17 Python
详解canvas多边形(蜘蛛图)的画法示例
2018/01/29 HTML / CSS
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
个人求职信范文
2014/05/24 职场文书
个人工作能力自我评价
2015/03/05 职场文书
转学证明范本
2015/06/19 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python