小程序问题总结
1.新建页面最好用编辑器自带的,自己写的话注意页面的初始化,容易产生报错模糊不明确
2.app.xcss是全局的样式,page里面的样式只对当前的页面有效,并且可以覆盖掉app.xcss
3.app.js按需加载,不会默认执行,首先执行的是index.js
const app = getApp();
onLoad(){
app.getUserInfo();//index内的方法
}
4.页面跳转传参
my.redirectTo({ url: '../houseDetail/houseDetail?id=' + that.data.id });
onLoad: function(options) {
const id = options.id;
}
5.框架以栈的形式维护了当前的所有页面。
my.navigateTo vs my.redirectTo ———打开页面
my.navigateBack()———返回页面
调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而 redirectTo 方法则不会。
6.ios VS 安卓(及时关注后续版本是否修复)
a.搜索框(输入框),安卓点击确认(键盘上的确认键)会触发onComfirm,ios点击前进(键盘上的按钮)不会触发
设置onBlur事件,如果页面还要其他事件,
(那么onBlur事件设置延迟,点击到其他可点击的按钮则把延迟关闭,正常进行即可)
h.选择城市确认返回的时候,ios会多执行一次onShow里面的方法
my.chooseCity()
分辨用户是ios还是安卓api:my.getSystemInfo()
(c.切换应用时ios会刷新,安卓不会)
7.开关
a.默认states有一个切换的过程,在数据请求里面设一个开关,开关打开在一起显示页面,页面未显示的时候放上加载动画。
b.在点击’获取验证码’时,表单提交的时候等等,为了不让用户重新点击,在此方法中一开始需要将其设置为不可点击,就是说用户点击过一次就让其不可再点了
8.返回列表刷新,在onshow里面进行相应的操作,onload在回退的时候不再执行,只有在首次进入该页面时执行。
9.在定时器中,this是会指向全局对象的,并不会指向当前对象
Var that = this;
setInterval(that.timer.bind(that),1000)
10.地图在模拟器上无法查看(不调取点标注等高级的API等方法是可以查看的),需要真机调试,地图坐标点不能超过30个,地图页面显示的层级最高,不能加任何元素,通过修改控制器加一些图片进去。