Mpvue中使用Vant Weapp组件库的方法步骤


Posted in Javascript onMay 16, 2019

一、介绍

mpvue-vant记录了我们团队开发中在mpvue中使用Vant Weapp组件库所踩下的坑,在这里分享给大家,让mpvue开发者可以使用vant组件库进行开发,避免踩不必要的坑。

此教程是在dov-yih一同协助下完成。经过测试,Vant Weapp下所有组件都能够在mpvue中使用

mpvue-vant Github地址

二、使用方法

目前vant已经支持了npm的方式,但是由于node_modules目录下的代码是不会被编进dist目录下的,所以暂时只能用git方式使用。

克隆vant仓库

将dist目录下的所有文件复制到你项目的/static/vant/目录下。

git clone https://github.com/youzan/vant-weapp.git
// 当然你也可以克隆本仓库代码,本仓库会与`vant`仓库保持同步。直接将`vant`目录复制到`/static`目录下
git clone https://github.com/Rychou/mpvue-vant.git

引入

在需要引入的页面目录下的main.json文件中

{
 "usingComponents": {
  "van-button": "/static/vant/button/index",
 }
}

使用

<van-button>测试</van-button>

三、注意事项

具体组件 api 文档参考Vant Weapp

1. 使用方式

mpvue 和原生小程序的方式有所不同。可以参考mpvue文档

1.1 数据绑定

原生小程序使用方式为

value="{{value}}"

mpvue 使用方式

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

1.2 事件监听

原生小程序使用方式

bind:click="onClick"

mpvue 使用方式

@click="onClick"

1.3 vue 中组件引入

vant中像notify这种操作反馈类的组件都有两个引入,一是组件的引入,这个在main.json中引入;另一个是方法的引入,需要在vue文件中import引入,值得注意的是,这里的引入不能使用绝对路径,可以用类似于这样的相对路径。

import Notify from '@/../static/notify/notify' //@是mpvue的一个别名,指向src目录

1.4 获取 event

值得注意的是,mpvue中获取event值与原生小程序有所不同。举例:

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

2. BUG 及报错处理方法

2.1 监听名

mpvue 里面无法使用@click-icon这样的监听名,因此如果 API 文档里面有出现这样的监听名,那么需要手动修改源代码。

可以改成驼峰式的监听名。

eg: 我在field组件中就遇到这个问题,我的做法是:

// static/vant/field/index.js

this.$emit('click-icon');

// 修改为:

this.$emit('clickIcon');

2.2 报错

一般的报错报错都可以通过一下流程处理。

  • 是否打开了微信开发者工具中的ES6转ES5功能。
  • 仔细检查代码和比对文档,看看是否有使用不当的地方。
  • 重新编译npm run dev或删掉dist目录重新npm run dev
  • 重启或更新微信开发者工具。

若以上流程都走完了,还是无法解决报错,可以通过提交issues的方式,我来帮你解决。

2.2.1 引入组件报错

VM54:1 thirdScriptError sdk uncaught third Error module "static/vant/notify/index.js" is not defined

解决办法是:打开小程序开发者工具中的ES6 转 ES5功能. issues/#5

3. 其他组件库

目前比较好的组件库有三个,Wux Weapp,iview weapp,Vant Weapp。

这三者都是用原生小程序写的组件库,因此理论上来说,在 mpvue 中都是可以无缝使用的。不同组件库的组件都不一样,有的更丰富,有的逻辑更完善,有的文档更清晰。因此用什么组件,还需要自己取舍。

比如:三者中,唯有Wux Weapp有日历组件,而且它里面还有一些更高级的组件可以使用。

使用方法上,几乎没有差异。值得注意的是,大家复制源代码到自己项目上时,应该复制/dist/目录下的文件。因为这里是经过编译后的。

如果大家使用过程中遇到什么 BUG,可以通过提issues的方式让我知道,大家一起踩坑吧!

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

Javascript 相关文章推荐
用javascript getComputedStyle获取和设置style的原理
Oct 10 Javascript
分享十五个最佳jQuery 幻灯插件和教程
Mar 27 Javascript
嵌入式iframe子页面与父页面js通信的方法
Jan 20 Javascript
JS数组操作之增删改查的简单实现
Aug 21 Javascript
Javacript中自定义的map.js  的方法
Nov 26 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
Mar 15 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
原生JS实现逼真的图片3D旋转效果详解
Feb 16 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
Apr 25 Javascript
Vue 实现前进刷新后退不刷新的效果
Jun 14 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
May 21 Javascript
原生js+canvas实现贪吃蛇效果
Aug 02 Javascript
JS左右无缝轮播功能完整实例
May 16 #Javascript
Node.js Windows Binary二进制文件安装方法
May 16 #Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
May 16 #Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
May 16 #Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
May 16 #Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
May 16 #Javascript
怎样在vue项目下添加ESLint的方法
May 16 #Javascript
You might like
如何做到多笔资料的同步
2006/10/09 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
JSONP 跨域共享信息
2012/08/16 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
2017/08/10 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
js实现电灯开关效果
2021/01/19 Javascript
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
python实现巡检系统(solaris)示例
2014/04/02 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
python+pygame实现坦克大战
2019/09/10 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
大一新生期末自我评价
2014/09/12 职场文书
地方白酒代理协议书
2014/10/25 职场文书
区域经理岗位职责
2015/02/02 职场文书
主婚人致辞精选
2015/07/28 职场文书