在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
有美团开源出的mpvue以其vue的语法和良好的开发效率再搭配上用户体验良好的UI组件无疑是定制化微信小程序的开发方式,然而由于mpvue是对微信原生开发的再次封装,这也为我们引入UI组件添加了不少麻烦,话不多说,接下来为大家展示引入vant-weapp的方法。1、首先,我们需要有个mpvue的基础的项目文件骨架,即用mpvue初始化一个项目
2、其次,在微信开发者工具中新建项目,填入注册的appid和文件目录(敲黑板了这里要注意一点,文件目录是mpvue项目中下的dist目录),根目录中的dist目录实际上就是mpvue每次打包完成后(npm run build)的目录,所以里面的MINA文件结构就是微信小城小程序原生开发的文件结构;3、接下来,我们需要用到vant-weapp开源项目中vant UI组件,所以要将vant-weapp下载下来,下来后将其项目下的dist文件全部都copy到我们需要用到原项目中(就是我们开始初始化的项目),为了方便管理,可以在根目录下的static下新建一个vant用于存放UI组件文件;
4、接下来就比较简单了,组件的具体用法可在官方文档中查看,我们只需要在我们需要使用组件的页面的配置json文件中引入我们需要的组件以下是我的首页json配置 { // 页面配置,即 page.json 的内容 navigationBarTitleText: '首页', 'usingComponents': { 'van-search': '/static/vant/search/index', 'van-row': '/static/vant/row/index', 'van-col': '/static/vant/col/index', 'van-tab': '/static/vant/tab/index', 'van-tabs': '/static/vant/tabs/index', 'van-cell': '/static/vant/cell/index', 'van-cell-group': '/static/vant/cell-group/index', 'van-radio': '/static/vant/radio/index', 'van-radio-group': '/static/vant/radio-group/index', 'van-field': '/static/vant/field/index', 'van-button': '/static/vant/button/index', 'van-card': '/static/vant/card/index', 'van-popup': '/static/vant/popup/index', 'van-icon': '/static/vant/icon/index', 'van-panel': '/static/vant/panel/index', 'van-action-sheet': '/static/vant/cell-group/index', 'van-switch-cell': '/static/vant/switch-cell/index', 'van-area': '/static/vant/area/index', 'van-dialog': '/static/vant/dialog/index' } }
4、将UI组件导入后可在项目册测试,在此之前为了让UI组件生效,我们需要将项目打包一下,即为我们需要打开终端,在项目的根目录下执行一遍(npm run build),这样vant的UI组件就会在页面中正常发挥作用了注意事项在vant-weapp的官方文档中的具体用法是使用wxml的语法,所以我们不能直接照搬使用1、数据的绑定方式 原生小程序,在标签内绑定数据的方式
由于我们使用的事mpvue,所以我们需要改成
2、事件的绑定方式 原生小程序使用方式
mpvue 使用方式
3、交互组件的引用 vant中像notify这种操作反馈类的组件都有两个引入,一是组件的引入,这个在main.json中引入;另一个是方法的引入,需要在vue文件中import引入,值得注意的是,这里的引入不能使用绝对路径,可以用类似于这样的相对路径。
4、获取 event 事件对象中值 值得注意的是,mpvue中获取event值与原生小程序有所不同。举例:
5、监听方式的变更 可以改成驼峰式的监听名。 eg: 我在field组件中就遇到这个问题,我的做法是:
报错的处理方式一般的报错报错都可以通过一下流程处理。1、是否打开了微信开发者工具中的ES6转ES5功能。 在添加UI组件后,报页面丢失,TypeError: Cannot read property 'index' of undefined1、新建的页面,没有重新打包
|
请发表评论