微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地。紧接着通过app.json的pages字段知道当前小程序的页面路径。小程序启动之后,在app.js定义的App实例的onLaunch回调会被执行:
App({
onLaunch: function () {
// 小程序启动之后 触发
}
})
程序与页面
可以看到pages/logs/logs下其实是包括了4种文件的。微信客户端会先根据logs.json配置生成一个界面,顶部的颜色和文字都可以在这个json文件里边定义好。然后客户端装载这个页面的WXML结构和WXSS样式。最后装在logs.js,可以看到logs.js的答题内容:
Page({
data: { // 参与页面渲染的数据
logs: []
},
onLoad: function () {
// 页面渲染后 执行
}
})
在生成页面的时候,小程序框架会把data数据和index.wxml一起渲染出最终的结构,于是就得到了小程序的样子。在渲染完界面之后,页面实例就会收到一个onLoad的回调,在这个回调处理你的逻辑。注册页面Page
组件
小程序提供了丰富的基础组件给开发者。就像HTML的div,p等标签一样,在小程序里边,你只需要在WXML协商对应的组件标签名字就可以把该组件显示在界面上,例如,需要在界面上显示地图:
<map></map>
使用组件的时候,还可以通过属性传递值给组件,让组件可以以不同的状态去展现,例如,我们希望地图一开的中心的经纬度是广州,那么你需要声明地图的longitude(中心维度)和latitude(中心维度)两个属性:
<map longitude="广州经度" latitude="广州纬度"></map>
也可以通过style或者class来控制组件的外层样式,以便适应界面宽度高度等等。小程序的组件
API
为了让开发者可以很方便的调起微信提供的能力,例如获取用户信息、微信支付等等,小程序提供了很多API给开发者去使用。
要获取用户的地理位置时,只需要:
wx.getLocation({
type: 'wgs84',
success: (res) => {
var latitude = res.latitude // 经度
var longitude = res.longitude // 纬度
}
})
调用微信扫一扫能力,只需要:
wx.scanCode({
success: (res) => {
console.log(res)
}
})
小程序的API