详解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 相关文章推荐
[JS源码]超长文章自动分页(客户端版)
Jan 09 Javascript
Javascript 面试题随笔
Mar 31 Javascript
jQuery 3.0 的 setter和getter 模式详解
Jul 11 Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
Jul 17 Javascript
小程序tab页无法传递参数的方法
Aug 03 Javascript
vue日历/日程提醒/html5本地缓存功能
Sep 02 Javascript
JS正则表达式验证密码强度
Mar 18 Javascript
从0搭建vue-cli4脚手架
Jun 17 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
Aug 05 Javascript
react合成事件与原生事件的相关理解
May 13 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和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
php 二维数组快速排序算法的实现代码
2017/10/17 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
python如何在列表、字典中筛选数据
2018/03/19 Python
Django添加sitemap的方法示例
2018/08/06 Python
python实现事件驱动
2018/11/21 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
Python3读写ini配置文件的示例
2020/11/06 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
店长职务说明书
2014/02/04 职场文书
大学运动会入场词
2014/02/22 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
学生实习证明范文
2014/09/28 职场文书
谢师宴邀请函
2015/02/02 职场文书
《西门豹》教学反思
2016/02/23 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript
使用MybatisPlus打印sql语句
2022/04/22 SQL Server
关于vue-router-link选择样式设置
2022/04/30 Vue.js
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python