上一篇介绍了如何从零开发微信小程序开发博客园审核变智障了,每次代码都不算篇幅好好滴一篇原创,不到3分钟从首页移出来了这篇介绍一下组件封装和我嘚踩坑历程。
二、封装微信小程序开发可复用组件
首先模块化的思想是通用的在这不做过多解释了。直接上代码然后解释代码:
这是一个简单菜单组件;输入菜单数据 menuList , 暴露出 菜单点击事件的回调 menuEvent
然后介绍一下小程序封装组件的特殊之处:
3、properties 组件接收的属性在这里面声明,包括数据类型和默认值
4、生命周期通常用 ready 代表其准备完毕
最后介绍一下组件使用的方法:
1、在要用组件的json文件
<menu menuList="{{menuList}}"></menu>
这就是微信小程序开发封装组件的大致流程。大同小异只是给大家说一下他特殊的地方而已
三、小程序的坑——小程序与其他web应用的不同之处 ps: 这里只描述问题,并提供解决问题的方法详细的了解请查官方文档
1、问题: map 等原生组件的覆盖问题。 在小程序里面原生组件默认展示层级最该,也就是video、map等组件会覆盖我们的标签即便是定位调节 z-index 什么的都没用
2、问题:wxss 无法使用本地资源,即 background-image 不能直接使用相对路径展示图片
3、问题:大多数 js 插件无法使用
原因:小程序用的是不完整的浏览器对象,大多数 BOM DOM 对象的api无法使用故:没办法的事情
4、问题:使用npm包费劲
解决:请看我上一篇博客,详解微信小程序开发开发
5、问题:只支持到ES6不支持ES7。像 async 等这些东西都用不了
解决:这个比较蛋疼了。(1)这里只提供解决的思路引入 regenerator 这个包 ,或者其他包都行(2)开发环境自己搭建gulp打包环境,自己把js代码转ES5注意关闭小程序自带的转换。
6、问题:获取鼡户信息改版了wx.authorize 等api不好使
7、问题:wx.request 请求,无法携带cookie或者每次请求携带的都不一样,而且不同版本开发者工具设置cookie的报文字段不同
8、问题:map 组件的使用,map是腾讯地图和 百度、高德什么的,这些地图坐标系不同经纬度的相互使用需要转化
10、问题:上述问题,岼时好用但是如果按钮在原生组件上面的话,又不好使了
11、问题:小程序的事件点击不允许传参数GoMy无法像vue react之类的一样写箭头函数矗接传参
解决:通过data-id这个属性绑定关键参数,触发函数再去取出来
以上就是我遇到的一些问题后序再有,会再补充