今天看了一下微信小程序官方文档,所以把一些容易混淆和觉得重要的地方做个笔记,方便以后查阅,今天只更新部分。
1. 渲染层和逻辑层分离,两个线程分别工作
2. json静态配置文件,小程序json配置文件不支持undefined
3. json配置文件无法注释
4. wxml模板支持数据绑定{{变量名称}}代替web中的DOM接口完成数据动态更新
5. 变量名称区分大小写
6. import可以引入template模板,而include只能引用除去template和wxs外的代码
7. 小程序编译后rpx换算一次px
8. wcss选择器优先级从大到小排列import,style,id,class,elment
相同优先级情况,后设置的高于先设置的(权重高)
9. 全局变量通过getApp获得
10. wxml和wcss工作在渲染层,js工作在逻辑层
11. js通过this.setData传递数据到渲染层
12. 程序app是单例,可以通过app构造器传递参数作为全局变量
13. onLoad,onShow,onHide构成app主要生命周期
14. 页面栈最大为10层,所以到10层时可以选择redirectto保证不超越10层
15. Tabbar内定义的页面不能被navitateto和redirectto跳转,当tab1跳转到tab2,栈内所有没在tabbar中定义的页面都会被清除
16. 事件捕获和冒泡,js的捕获事件(最后一个参数为true)遵从最外层到最内层(从上到下),冒泡时间(false)遵从最内层到最外层(从下到上),小程序中的捕获事件和冒泡事件也是如此,但假如把捕获事件为catch而不是bind,那么就会阻止冒泡事件从下往上。
17. flex布局,通过flex-direction为row时,item延主轴从左到右排列,排满后延交叉轴换行继续排列,还有row-reverse,column和column-reverse
flex-wrap: nowrap | wrap | wrap-reverse是如何排列的
justify-content: flex-start(item对齐主轴起点,item间没有空隙), center(item居中对齐,item间没有空隙), flex-end(item对齐主轴终点,item间没有空隙), space-between(第一个item对齐主轴起点,最后一个item对齐主轴终点,其余item间距相同), space-around(第一个item与主轴起点间距和第二个item与主轴终点间距是其余item间距的一半), space-evenly(所有item间距相同)
18. button和view组件的hover-class和loading属性常用来提供给用户触屏后的反馈效果
19. 小程序的Toast应用
20. wx.showModal模拟对话框的应用
21. onPullDownRefresh和onReachBottom的应用
22. wx.request默认为Get方法,可以使用url或者url + data方式传递,但传递的data不能超过1024kb。如果超过1024那么需要使用POST方法,如果传递的参数数据结构比较复杂,那么POST的header的content-type='application/json'