微信开发者文档已经写得很清楚很完善了,但也有一些细节没写明白,在这里班门弄斧的记录一下。持续更新中……
@)监听返回按钮事件
腾讯没有提供API监听返回事件,但可以通过以下方法:返回会触发onUnload事件,在unLoad中根据业务逻辑再处理就行了。
@)占用内存限制
微信官方允许小程序的代码发布限制在1MB以下,而实际开发过程中,图片等多媒体资源通常会占用较大空间,导致程序包大小很容易超出1MB限制。因此,开发者需要将多媒体资源剥离后上传至服务器端或云端,并修改资源的引用路径。腾讯云小程序解决方案提供瘦身功能。
与APP类似,用户在使用小程序的过程中也会持续产生不同类型的交互数据,微信官方对整个小程序大小也有着10MB的限制,意味着使用过程中的用户交互数据也只能通过服务器端或云端存储。
@)console控制台输出:
for (var i =0; i <32; i++) {}
总结:微信开发工具控制台会对连续相同的内容进行折叠。
显示 value == 100
显示 value == 101
显示都不符合
//index.js
const app = getApp();//获取应用实例
Page({
data: {
mValue: 98,
},
onLoad: function () {
var that = this;// 当前类的上下文
setTimeout(function () {
that.setData({mValue : 100});
}, 3000);
}
})
先后显示
@)可以在任何地方设置全局变量:下方 app.js 中的 globalData 只有一个键值对,但可以在 index.js 页面创建token、haha等全局属性。
//app.js
App(
{
onLaunch: function () {
// 展示本地存储能力,TODO
},
globalData: {
mName : "lvxiangan"
}
})
//index.js
//获取应用实例
const app = getApp()
Page({
data: {
mValue: 98,
},
onLoad: function () {
var mToken = app.globalData.token;
console.log(mToken); // 输出:undefined
app.globalData.haha = "haha";
console.log("app.globalData.haha===" + app.globalData.haha); // 输出:haha
}
})
总结:可以在其他 js 文件创建app.globalData自定义属性,但为方便维护,建议统一在globalData里面创建。
@)使用forEach遍历数组。以下两者等价:
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
arr.forEach(function(item,index){
console.log(item);
});
arr.forEach((item,index) => {
console.log(item); //item是数组中每一个值,index是序号
});
@)this.setData用法
微信中的this.setData,类似java的setter、getter,set的是Page页面定义的data,不同的是,微信SDK除了赋值外,还会对引用data下属变量的页面进行重新渲染,重新显示页面新数据。如Page / xxx.js 文件:
Page({
/**
* 页面的定义初始数据
*/
data: {
dataList: [],
curIndex: 0,
total: 0,
result: []
},
test: function() {
// 使用setData进行二次赋值,注意小括号里面要包含大括号
this.setData({
curNav : 123,
});
},
})
注意:
undefined
,否则这一项将不被设置并可能遗留一些潜在问题。