微信小程序开发--【APP(Object)函数介绍】(三)
什么是APP(Object)
`App()`` 函数用来注册一个小程序。接受一个 Object 参数,其指定小程序的生命周期回调等。
所以也被称为注册程序
App()
必须在 app.js
中调用,必须调用且只能调用一次。不然会出现无法预期的后果。
这个有点像安卓开发中的Application
。只有一个而且调用一次。
参数说明
属性 | 类型 | 描述 | 触发时机 |
---|---|---|---|
onLaunch | Function | 生命周期回调—监听小程序初始化 | 小程序初始化完成时(全局只触发一次) |
onShow | Function | 生命周期回调—监听小程序显示 | 小程序启动,或从后台进入前台显示时 |
onHide | Function | 生命周期回调—监听小程序隐藏 | 小程序从前台进入后台时 |
onError | Function | 错误监听函数 | 小程序发生脚本错误,或者 api 调用失败时触发,会带上错误信息 |
onPageNotFound | Function | 页面不存在监听函数 | 小程序要打开的页面不存在时触发,会带上页面信息回调该函数 |
其他 | Any |
开发者可以添加任意的函数或数据到 Object 参数中,用 this 可以访问
|
前台、后台定义: 当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。需要注意的是:只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。
onLaunch(Object)
小程序初始化完成时触发,全局只触发一次。参数也可以使用 wx.getLaunchOptionsSync 获取。
参数说明:
与 wx.getLaunchOptionsSync 一致
onShow(Object)
小程序启动,或从后台进入前台显示时触发。也可以使用 wx.onAppShow 绑定监听。
参数说明:
与 wx.onAppShow 一致
onHide()
小程序从前台进入后台时触发。也可以使用 wx.onAppHide 绑定监听。
onError(String error)
小程序发生脚本错误或 API 调用报错时触发。也可以使用 wx.onError 绑定监听。
参数说明
与 wx.onError 一致
onPageNotFound(Object)
基础库 1.9.90 开始支持,低版本需做兼容处理。
小程序要打开的页面不存在时触发。也可以使用 wx.onPageNotFound 绑定监听。注意事项请参考 wx.onPageNotFound。
参数说明:
与 wx.onPageNotFound 一致
效果展示
//app.js
App({onLaunch(options) {console.log("==onLaunch==")},onShow(options) {console.log("==onShow==")},onHide() {console.log("==onHide==")},onError(msg) {console.log("==onError==")},onPageNotFound(res) {console.log("==onPageNotFound==")},globalData: 'I am global data'
})
我们看下日志:
安卓的小伙伴应该能想到
onLaunch
类似 onCreate
onShow
类似 onResume
onHide
类似 onPouse
注意事项
全局的 getApp() 函数可以用来获取到小程序 App 实例。
// other.js
const appInstance = getApp()
console.log(appInstance.globalData) // I am global data
不要在定义于 App() 内的函数中调用 getApp() ,使用 this 就可以拿到 app 实例。
通过 getApp() 获取实例之后,不要私自调用生命周期函数。
扫码关注公众号“伟大程序猿的诞生“,更多干货新鲜文章等着你~
公众号回复“资料获取”,获取更多干货哦~
有问题添加本人微信号“fenghuokeji996” 或扫描博客导航栏本人二维码
微信小程序开发--【APP(Object)函数介绍】(三)相关推荐
- 微信小程序开发的完整流程介绍,新手必读
自从跳一跳小程序游戏出现后,一夜之间,小程序就变得家喻户晓了,功能开发也越来越丰富,在微信搜一搜就会发现许多大品牌早已有自己的小程序了,越来越多的企业和商家都看中了这个风口,想快速开发出一款属于自己的 ...
- 1个月uni-app微信小程序开发上线实战专栏介绍
一.专栏介绍: <uni-app开发微信小程序1个月上线实战>,目标带领1000位同学成功开发上线一个自己的个人小程序! 作者介绍:国服第二切图仔--资深前端开发工程师,具有六年以上的前端 ...
- 微信小程序开发 app.json全局配置
JSON 是一种数据格式,在实际开发中,JSON 总是以配置文件的形式出现. app.json 是当前小程序的全局配置,可以通过app.json对小程序项目进行设置所有页面路径.窗口外观.界面表现.底 ...
- 【微信小程序开发】云函数Cannot find module ‘wx-server-sdk‘
在调用微信小程序云函数时,报错: 本地调试是没有问题的: 解决办法是,不要从云开发控制台新建云函数,这样新建出的云函数文件夹是空的.这样在npm 安装依赖时会因为没有package.json等文件而报 ...
- 微信小程序开发—— app.json
小程序根目录下的 app.json 文件用来对微信小程序进行全局配置.文件内容为一个 JSON 对象,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. app.json全局配置 小 ...
- 微信小程序全栈开发实践 第三章 微信小程序开发常用的API介绍及使用 -- 3.6 网络接口简介(六)关于Page页面隐藏代码执行及Promise对象catch处理的补充
零.回顾 在上节课我们主要是基于 Promise 加 await.async关键字改写了登录模块代码, 但是我们在自动登录这一块的代码仍然有问题,这节课我们看一下, 如何在接口调用中实现微信用户的自动 ...
- 微信小程序全栈开发实践 第三章 微信小程序开发常用的API介绍及使用 -- 3.5 网络接口简介(五)基于Promise+await、async关键字改写登录模块
零.回顾 在上节课我们主要实践练习了Promise的三个方法,包括any.all.race. 现在我们对Promise变成已经有了一个大致的了解. 这节课我们尝试将登录模块使用Promise编程方式进 ...
- 微信小程序开发环境/正式环境介绍。
正常应用环境下,小程序要建立两套云开发环境,一套云开发环境用于开发人员开发测试会用,另一套环境用于正式上线时使用. 第一.可以进行环境区分,因为两套云开发环境里面有两套不同的云函数/云数据库/云存储等 ...
- 微信小程序全栈开发实践 第三章 微信小程序开发常用的API介绍及使用 -- 3.7 网络接口简介(七)学习EventChannel对象
零.回顾 在之前我们自定义实现picker-view组件的时候, 曾经使用过一个pop-up的自定义组件, 这个组件可以在底部滑入一个面板, 现在我们把登录按钮放在底部滑入的面板之上, 然后在完成登录 ...
- 微信小程序开发-app开发公司-软件开发
前言 5G,AI,AR,物联网,大数据,区块链,云计算 数字智能时代,实现未来智慧生活 链环科技,乘势而上 硬件对接,软件开发 Vue,Java,jQuery,PHP,JS,H5,C4D,PS- 主流 ...
最新文章
- 17 个方面,综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ
- 115网盘如何打开php文件格式,115网盘下载:因纽特语教材(初级+高级+音频)
- 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 EventChannel 通信 )
- Gazebo添加模型并控制模型运动作为动态障碍物(Ubuntu16.04, Gazebo7.16),附录动态链接库和静态链接库区别
- 【转】提纲挈领webrtc之NS(noise suppression)模块
- 阿里二面:外部接口大量超时,把整个系统拖垮,引发雪崩!如何解决?熔断......
- 从零开始学前端:弹性盒模型(flex布局) --- 今天你学习了吗?(CSS:Day19)
- Windows Server 2012的服务管理自动化
- SPI通信协议简要介绍
- 电脑如何压缩图片大小kb?如何在线压缩图片?
- 此刻,投资自己,才是最好的投资
- vue漂亮的企业网站模板
- 央行等8部委发文规范供应链金融,严禁无牌开展相关业务
- 数据挖掘算法和实践(二十一):kaggle经典-职场离职率分析案例解读
- pvs linux_Linux下用于C ++开发的PVS-Studio静态分析器入门
- [ CTF ]【天格】战队WriteUp-第六届”蓝帽杯“全国大学生网络安全技能大赛(半决赛)
- html查看蛋白质,怎么查询蛋白质的全部信息-- UniProKB数据库
- 有限新息率FRI信号模型
- 【python】RuntimeError: Set changed size during iteration 问题解决
- firefox 扩展
热门文章
- 程序开发中常用的密码学家的算法推荐清单
- 数据抓取的艺术(一)
- 两个大数之间的乘积计算,string1=123456789...76,string2=23456...8957,求模拟计算机计算这两个数字的乘积。(C++实现)
- opencv图像连通区域分析
- Java httpClient 发送http请求
- 时分多路数字电话基带传输系统
- ZOJ - 2402 DP方案数
- DataFactory插入MySQL中文乱码问题
- 【转】C#正则表达式教程和示例
- 2016.05.17开通自己的博客