生命周期函数
- 小程序的生命周期
(1)onLaunch:当小程序初始化完成时,全局只触发一次
(2)onShow:当小程序启动或从后台进入前台显示
(3)onHide:当小程序从前台进入后台
(4)onError:当小程序发生脚本错误,或者api调用失败 - 页面的生命周期
(1)onLoad:页面加载时触发,只会调用一次,可获得当前页面路径中的参数
(2)onReady:页面初次渲染完成时触发,只会调用一次,代表页面已可和视图层进行交互
(3)onShow:页面显示/切入前台时触发,一般用来发送数据请求
(4)onHide:页面隐藏/切入后台时触发,如底部tab切换到其他页面或小程序切入后台等
微信小程序的相关文件类型
- wxml模板文件:是框架设计的一套标签语言
- wxss样式文件:一套样式语言,用于描述wxml的组合样式
- js脚本逻辑文件:处理网络请求
- json配置文件:小程序设置,如页面注册、页面标题及tabBar
- app.json:整个小程序的全局配置,包括:
(1)pages:所有路径文件
(2)网络设置(网络超时时间)
(3)window:背景色、导航样式、默认标题
(4)底部tab等 - app.js:可以没有内容,监听并处理小程序的生命周期函数,声明全局变量
- app.wxss:全局配置的样式文件
wxml和html的异同
- 相同:都是用来描述页面的结构;都由标签、属性等构成
- 不同:标签名字不一样,且小程序标签更少,单一标签更多;wxml仅能在微信小程序开发者工具中预览,html可以在浏览器预览。
小程序页面有哪些传递数据的方法
- 页面跳转或重定向时,使用url带参数传递数据
- 使用全局变量
- 使用组件模板template传递参数
- 使用缓存
小程序内的页面跳转
- wx.navigateTo:保留当前页面,跳转到应用内的某个页面。但是不能跳转到tabbar页面。
- wx.redirectTo:关闭当前页面,跳转到应用内的某个页面。但是不能跳转到tabbar页面。
- wx.switchTab:跳转到tabbar页面,并关闭其他非tabbar页面,路径后不能带参数。
- wx.navigateBack:关闭当前页面,返回上一页面或多级页面,可通过getCurrentPages()获取当前的页面栈,决定需要返回几层。
- wx.reLaunch:关闭所有页面,打开应用内的某个页面。
小程序冷启动和热启动
- 热启动:假如用户已经打开过某小程序,然后在一定时间内(5分钟)再次打开小程序,此时无需重新启动,只需将后台状态的小程序切换到前台,这个过程就是热启动。
- 冷启动:用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动。
(1)小程序没有重启的概念
(2)当小程序进入后台,客户端会维持一段时间的运行状态,超过一定时间(目前是5分钟)会被微信主动销毁 - 更新机制:小程序冷启动时如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动,新版本的小程序需要等下一次冷启动才会应用上。可以使用 wx.getUpdateManager API进行处理。
在app.js的onLaunch方法里,wx.getUpdateManager()使用该接口,可以获知是否有新版本小程序、新版本是否下载好以及应用新版本的能力。