使用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 相关文章推荐
JS判断不能为空实例代码
Nov 26 Javascript
jQuery中append()方法用法实例
Jan 08 Javascript
jQuery简单实现遍历数组的方法
Apr 14 Javascript
JS实现支持Ajax验证的表单插件
Mar 24 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
Sep 20 Javascript
JS关于刷新页面的相关总结
May 09 Javascript
element-ui循环显示radio控件信息的方法
Aug 24 Javascript
AngularJS 监听变量变化的实现方法
Oct 09 Javascript
js 计算图片内点个数的示例代码
Apr 04 Javascript
重学JS之显示强制类型转换详解
Jun 30 Javascript
微信小程序云开发如何实现数据库自动备份实现
Aug 16 Javascript
webpack的 rquire.context用法实现工程自动化的方法
Feb 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安全配置详细说明
2011/09/26 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
2018/05/21 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
2019/09/06 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
Python简单遍历字典及删除元素的方法
2016/09/18 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
Python3 replace()函数使用方法
2018/03/19 Python
python获取整个网页源码的方法
2020/08/03 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
院药学专业个人求职信
2013/09/21 职场文书
职业规划实施方案
2014/06/10 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
创业计划书详解
2019/07/19 职场文书
JS实现九宫格拼图游戏
2022/06/28 Javascript