详解mpvue中使用vant时需要注意的onChange事件的坑


Posted in Javascript onMay 16, 2019

最近用了一下Vant Weapp组件库,但是由于我是用mpvue写的,所以自然跟小程序引用不一样,比如我最近引用了vant里面的collapse折叠面板,官网文档里面介绍的使用方法是这样的

1.在 app.json 或 index.json 中引入组件

"usingComponents": {
 "van-collapse": "path/to/vant-weapp/dist/collapse/index",
 "van-collapse-item": "path/to/vant-weapp/dist/collapse-item/index"
}

2.通过value控制展开的面板列表,activeNames为数组格式

<van-collapse value="{{ activeNames }}">
 <van-collapse-item title="有赞微商城" name="1">
  提供多样店铺模板,快速搭建网上商城
 </van-collapse-item>
 <van-collapse-item title="有赞零售" name="2">
  网店吸粉获客、会员分层营销、一机多种收款,告别经营低效和客户流失
 </van-collapse-item>
 <van-collapse-item title="有赞美业" name="3" disabled>
  线上拓客,随时预约,贴心顺手的开单收银
 </van-collapse-item>
</van-collapse>
Page({
 data: {
  activeNames: ['1']
 },
 onChange(event) {
  this.setData({
   activeNames: event.detail
  });
 }
});

但是在mpvue里面不能直接这样引入

下面是我的代码

<van-collapse :value="activeNames" @change="onChange($event)">
 <van-collapse-item title="有赞微商城" name="1">
  提供多样店铺模板,快速搭建网上商城
 </van-collapse-item>
 <van-collapse-item title="有赞零售" name="2">
  网店吸粉获客、会员分层营销、一机多种收款,告别经营低效和客户流失
 </van-collapse-item>
 <van-collapse-item title="有赞美业" name="3" disabled>
  线上拓客,随时预约,贴心顺手的开单收银
 </van-collapse-item>
</van-collapse>
export default {
 data () {
  return {
   activeName: '1'
  }
 },
 methods: {
  onChange (event) {
   console.log(event)
   this.activeName = event.mp.detail
  }
 }
}

得把原生小程序使用方式为改为mpvue 使用方式

首先是数据绑定方式

value="{{activeNames}}"

改为

v-bind:value="activeNames"
//或者
:value="activeNames"

然后是事件监听

在van-collapse组件里加个监听事件

@change="onChange($event)"

mpvue中获取event值也与原生小程序有所不同:

onChange(event){ // 获取表单组件filed的值
 console.log(event.mp.detail) // 注意加入mp
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript中将Object转换为String函数代码 (json str)
Apr 29 Javascript
js获取select默认选中的Option并不是当前选中值
May 07 Javascript
jQuery中:focus选择器用法实例
Dec 30 Javascript
js封装可使用的构造函数继承用法分析
Jan 28 Javascript
JavaScript分秒倒计时器实现方法
Feb 02 Javascript
JS清除字符串中重复值的实现方法
Aug 03 Javascript
微信小程序-form表单提交代码实例
Apr 29 Javascript
Flutter实现仿微信底部菜单栏功能
Sep 18 Javascript
layui实现多图片上传并限制上传的图片数量
Sep 26 Javascript
Element Card 卡片的具体使用
Jul 26 Javascript
JS+Canvas实现五子棋游戏
Aug 26 Javascript
JavaScript中跨域问题的深入理解
Mar 04 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
May 16 #Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
May 16 #Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
May 16 #Javascript
怎样在vue项目下添加ESLint的方法
May 16 #Javascript
eslint 的三大通用规则详解
May 16 #Javascript
webpack项目使用eslint建立代码规范实现
May 16 #Javascript
Vue项目中使用jquery的简单方法
May 16 #jQuery
You might like
PHP实现的memcache环形队列类实例
2015/07/28 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
laravel框架实现敏感词汇过滤功能示例
2020/02/15 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
js apply/call/caller/callee/bind使用方法与区别分析
2009/10/28 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
JavaScript学习笔记之创建对象
2016/03/25 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
2017/12/12 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
js自定义input文件上传样式
2018/10/26 Javascript
PyMongo安装使用笔记
2015/04/27 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
使用celery和Django处理异步任务的流程分析
2020/02/19 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
Django自带用户认证系统使用方法解析
2020/11/12 Python
python之随机数函数的实现示例
2020/12/30 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
大一自我鉴定范文
2013/10/04 职场文书
后勤部长岗位职责
2013/12/14 职场文书
化学实验员岗位职责
2013/12/28 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
工程质检员岗位职责
2015/04/08 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
投诉信回复范文
2015/07/03 职场文书