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使用过程中需要注意的地方和一些基本语法
Aug 26 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
Oct 17 Javascript
JS实现淘宝幻灯片效果的实现方法
Mar 22 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
Apr 08 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
May 04 Javascript
Vue中的v-cloak使用解读
Mar 27 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
Nov 28 Javascript
js原生方法被覆盖,从新赋值原生的方法
Jan 02 Javascript
vue获取验证码倒计时组件
Aug 26 Javascript
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
Feb 12 Javascript
在js文件中引入(调用)另一个js文件的三种方法
Sep 11 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
纯php打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
php猜单词游戏
2015/09/29 PHP
PHP中串行化用法示例
2016/11/16 PHP
javascript克隆对象深度介绍
2012/11/20 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
node微信开发之获取access_token+自定义菜单
2019/03/17 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
vue实现购物车案例
2020/05/30 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
python 文件查找及内容匹配方法
2018/10/25 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
python实现FTP循环上传文件
2020/03/20 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
秋季运动会通讯稿
2014/01/24 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
java设计模式--原型模式详解
2021/07/21 Java/Android