使用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 相关文章推荐
jQuery 获取URL参数的插件
Mar 04 Javascript
javascript高级学习笔记整理
Aug 14 Javascript
jQuery插件开发基础简单介绍
Jan 07 Javascript
给jQuery方法添加回调函数一款插件的应用
Jan 21 Javascript
JS比较2个日期间隔的示例代码
Apr 15 Javascript
使用JavaScript开发跨平台的桌面应用详解
Jul 27 Javascript
jqueryUI tab标签页代码分享
Oct 09 jQuery
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
Feb 11 Javascript
vue的常用组件操作方法应用分析
Apr 13 Javascript
JavaScript this绑定过程深入详解
Dec 07 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
Apr 25 Javascript
Vuejs通过拖动改变元素宽度实现自适应
Sep 02 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP安全配置
2006/12/06 PHP
详解WordPress中给链接添加查询字符串的方法
2015/12/18 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
js实现字符全排列算法的简单方法
2017/05/01 Javascript
详解Vue 方法与事件处理器
2017/06/20 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
Python的requests网络编程包使用教程
2016/07/11 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
python实现微信远程控制电脑
2018/02/22 Python
Python日志模块logging基本用法分析
2018/08/23 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
导致python中import错误的原因是什么
2020/07/01 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
重点工程汇报材料
2014/08/27 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
学生通报表扬范文
2015/05/04 职场文书
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP
Oracle使用别名的好处
2022/04/19 Oracle