小程序备忘

1.App的生命周期方法之onLaunch以及onShow,当小程序启动时,首先触发onLaunch在触发onShow,当小程序从后台再次被用户使用时,不会触发onLaunch,会触发onShow。

2.image响应式尺寸,设置定宽然后加上一个mode=”widthFix”。

3.关于dataset的问题,如下

1
<view data-userExamineId="{{shenlunExam.id}}"></view>

像上面的这种写法是错误的,data-后面最好接小写单词。

4.像下面写是错误的,硬是会把数组的下一项也给赋上这个值:

1
2
// userAnswer[questionNumber-1].push(answer);  这样处理是错误的,会把数组的下一项也给赋上这个值
userAnswer[questionNumber-1] = userAnswer[questionNumber-1].concat([answer]);

5.性能相关,wx:if是惰性的,如果初始条件为false的话,那么框架什么都不会做。hidden却始终会渲染,只是控制隐藏和显示。因此wx:if有更高的切换消耗,而hidden有更高的初始化渲染消耗。如果数据量很大的话,建议使用wx:if进行渲染。

6.给富文本添加自定义样式的坑:1.要先利用正则表达式给指定的标签添加类名;2.富文本并不支持所有的wxss属性,巨坑,比如设置字号最好别用rpx单位,直接使用px单位即可。

7.微信小程序生命周期之onHide以及onUnload,调用navigateTo或者底部tab切换时调用;当redirectTo或者navigateBack的时候调用。

8.setData更新视图是异步,设置内部状态是同步

9.Button组件去除外边框:

1
2
3
Button::after {
border: none;
}

10.在小程序中,absolute和flex定位搭配使用flex布局将会不起作用。解决办法,给需要flex布局的元素添加一个父元素,父元素使用绝对定位,而且指明宽度。

11.前面也提到了,setData对于视图来说是异步行为,那么怎么在更新视图完毕之后执行某些逻辑呢?答案就是传一个callBack作为setData的第二个参数。

12.对于小程序来说,线上,体验,开发三个版本共用storage。