微信小程序最终总结

菜鸟的微信小程序之旅,在第四个月画上了句号,但是说来很是遗憾
1、感觉自己还是会的太少,完全没有掌握精髓
2、准备打算给别人用,但是支付接口得成为商家,而且还得申请,所以便无力了

话不多说,这是我最后一篇微信小程序博客,将包含所有我所遇见的难以解决的坑,虽然有点杂乱,但肯定能给你启发
这最后一篇太杂,不知道怎么分类,有缘人看吧

1、style:静态的样式统一写到 class 中。style 接收动态的样式,在运行时会进行解析,请尽量避免将静态的样式写进 style 中,以免影响渲染速度。

2、
bindtap:有事件冒泡,子元素被点击会传递给父元素
catchtap(catch:tap):没有

3、
setData里面一定是JSON对象

4、
简单来说,只是展示用,建议使用template,组件中涉及到较多的逻辑,建议使用component

5、
template的使用,可以减少重复代码的编写,非常好用,必须会用,一般只含有.wxml .wxss文件

6、
this的指代跟上下文调用环境密切相关,不清楚时刻打印就好

7、
箭头函数里面的this就是定义函数的环境,而不是调用方的环境

8、
component标准写法(.json): “component”:true,按照Component:true,不会报错,但是会警告,有强迫症的记得注意

9、
缓存需要预先设置,不然在还没定义时获取会报错,如下:(不好)
手机上无缓存报错:

Object {data: "", dataType: "", errMsg: "ge...
data: ""
dataType: ""
errMsg: "getStorage:fail:data not found"
__proto__: Object

电脑上无缓存报错:

{errMsg: "getStorage:fail data not found"}
errMsg: "getStorage:fail data not found"
__proto__: Object

10、

"tabBar": {
    "backgroundColor": "#f12b22", //设置背景色
    "color": "#2c2c2c",//设置初始文字颜色
    "selectedColor": "#1296db",//设置选中文字颜色

11、
微信小程序定位,现在必须开启GPS

12、
input被disabled(禁用),可以通过setdata来改变里面的value

13、重点
微信小程序授权:
1、如果直接用wx.authorize,那么用户取消授权后无法再次授权
2、如果需要用户授权,那么第二次授权需要用到wx.getSetting判断需要授权的是否开启了,如果没有,则调用wx.openSetting
3、只能通过按钮绑定执行wx.openSetting。无法直接调用,官方防止滥用而规定
4、初始化进入页面时,res.authSetting[‘scope.userLocation’]=undefined,此时可以直接调用wx.getLocation(),会使用app.json里面的提示;当上一次未同意,再次进入调用时,res.authSetting[‘scope.userLocation’]=false,这时不能直接调用wx.getLocation()

14、
微信小程序tabbar是不会卸载界面的,跳转到授权页面,不会卸载当前页面

15、

db.collection('todos').where({
  _openid: 'user-open-id',
  style: {
    color: 'yellow'
  }
})
.get({
  success: function(res) {
    console.log(res.data)
  }
})
也可以用 "点表示法" 表示嵌套字段:
db.collection('todos').where({
  _openid: 'user-open-id',
  'style.color': 'yellow'
})
.get({
  success: function(res) {
    console.log(res.data)
  }
})

16、重点(我卡了好久)
setdata设置数组时,请看以下三篇文章:
1、https://blog.csdn.net/namecz/article/details/79623550
2、https://blog.csdn.net/thankszmy/article/details/80509018
3、https://developers.weixin.qq.com/community/develop/doc/000accfcdb44c0d12bd8d0aa351c00

17、
open-data标签可以直接获取用户头像和名称,但是设置border-raradius无效,必须加上overflow:hidden

18、
定位在swiper里面的元素不会一直停留,而是跟随第一个swiper移动

19、
更新后的tabbar的图片路劲不能写到miniprogram以外去了

20、重点
onload比onshow先执行,但是里面的函数不一定先执行

21、
dd2.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期,其中AddDayCount必须为number型,如果是string则会产生莫名奇妙的结果

22、
字符串“05”用parseInt()转换后为5,可以与string类型“5”比较

23、重点(我卡了好久)
picker里面的value实际上是选择的初始值,picker里面的start和end如果是变量表示,则需要用setDate()

24、可用来理解px转rpx算法
为了解决不同屏幕尺寸的适配问题,小程序自己定了一个尺寸单位:rpx(responsive pixel),它可以根据屏幕宽度进行自适应。小程序中规定, 所有设备的屏幕宽度都为 750rpx ,根据设备屏幕实际宽度的不同,1rpx 所代表的实际像素值也不一样

你可能感兴趣的:(微信小程序,小程序)