详解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 相关文章推荐
Firefox和IE浏览器兼容JS脚本写法小结
Jul 07 Javascript
判断文档离浏览器顶部的距离的方法
Jan 08 Javascript
浅谈$(document)和$(window)的区别
Jul 15 Javascript
JavaScript处理解析JSON数据过程详解
Sep 11 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
Jun 12 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
Aug 03 Javascript
浅谈Angular中ngModel的$render
Oct 24 Javascript
详解vue中引入stylus及报错解决方法
Sep 22 Javascript
微信小程序调用摄像头隐藏式拍照功能
Aug 22 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 Javascript
如何基于viewport vm适配移动端页面
Nov 13 Javascript
JavaScript canvas实现文字时钟
Jan 10 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
1.PHP简介
2006/10/09 PHP
php通过COM类调用组件的实现代码
2012/01/11 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
javascript OFFICE控件测试代码
2009/12/08 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
2014/04/04 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
深入理解vue-loader如何使用
2017/06/06 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
vue实现拖拽效果
2019/12/23 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
javascript实现时钟动画
2020/12/03 Javascript
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
聊聊Python中的pypy
2018/01/12 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
银行员工辞职信范文
2014/01/20 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
学术会议通知范文
2015/04/15 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
合同审查法律意见书
2015/06/04 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
Spring中的@Transactional的工作原理
2022/06/05 Java/Android