使用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 相关文章推荐
JavaScript iframe的相互操作浅析
Oct 14 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
Mar 04 Javascript
jquery控制左右箭头滚动图片列表的实例
May 20 Javascript
jQuery回车实现登录简单实现
Aug 20 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
Nov 24 Javascript
轻松掌握JavaScript代理模式
Aug 26 Javascript
深入理解bootstrap框架之入门准备
Oct 09 Javascript
Angualrjs和bootstrap相结合实现数据表格table
Mar 30 Javascript
JavaScript设计模式之构造函数模式实例教程
Jul 02 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
Sep 18 Javascript
关于layui 弹出层一闪而过就消失的解决方法
Sep 09 Javascript
npm qs模块使用详解
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
php cli换行示例
2014/04/22 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
python选择排序算法的实现代码
2013/11/21 Python
haskell实现多线程服务器实例代码
2013/11/26 Python
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
为什么说Python可以实现所有的算法
2019/10/04 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
求职自荐信的格式
2014/04/07 职场文书
股份合作协议书
2014/04/12 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
一文彻底理解js原生语法prototype,__proto__和constructor
2021/10/24 Javascript