使用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
Aug 13 Javascript
js中opener与parent的区别详细解析
Jan 14 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
Dec 10 Javascript
详解JavaScript对象和数组
Dec 03 Javascript
让你一句话理解闭包(简单易懂)
Jun 03 Javascript
jQuery插件开发发送短信倒计时功能代码
May 09 jQuery
WebSocket实现简单客服聊天系统
May 12 Javascript
vue2.x select2 指令封装详解
Oct 12 Javascript
vue动态路由配置及路由传参的方式
May 23 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
Aug 27 Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 Javascript
jQuery实现动态操作table行
Nov 23 jQuery
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分页显示制作详细讲解
2006/12/05 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
2010/10/17 Javascript
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
Vue指令指令大全
2019/02/09 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
js实现简易计算器小功能
2020/11/18 Javascript
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
python输入中文的实例方法
2020/09/14 Python
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
通信专业个人自我鉴定
2013/10/21 职场文书
诚信承诺书范文
2014/03/27 职场文书
企业诚信承诺书
2014/05/23 职场文书
雷人标语集锦
2014/06/19 职场文书
机动车登记业务委托书
2014/10/08 职场文书
品质保证书格式
2015/02/28 职场文书
Nginx服务器如何设置url链接
2021/03/31 Servers
python实现腾讯滑块验证码识别
2021/04/27 Python
Python+DeOldify实现老照片上色功能
2022/06/21 Python