什么是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. 微信小程序开发的完整流程介绍,新手必读

    自从跳一跳小程序游戏出现后,一夜之间,小程序就变得家喻户晓了,功能开发也越来越丰富,在微信搜一搜就会发现许多大品牌早已有自己的小程序了,越来越多的企业和商家都看中了这个风口,想快速开发出一款属于自己的 ...

  2. 1个月uni-app微信小程序开发上线实战专栏介绍

    一.专栏介绍: <uni-app开发微信小程序1个月上线实战>,目标带领1000位同学成功开发上线一个自己的个人小程序! 作者介绍:国服第二切图仔--资深前端开发工程师,具有六年以上的前端 ...

  3. 微信小程序开发 app.json全局配置

    JSON 是一种数据格式,在实际开发中,JSON 总是以配置文件的形式出现. app.json 是当前小程序的全局配置,可以通过app.json对小程序项目进行设置所有页面路径.窗口外观.界面表现.底 ...

  4. 【微信小程序开发】云函数Cannot find module ‘wx-server-sdk‘

    在调用微信小程序云函数时,报错: 本地调试是没有问题的: 解决办法是,不要从云开发控制台新建云函数,这样新建出的云函数文件夹是空的.这样在npm 安装依赖时会因为没有package.json等文件而报 ...

  5. 微信小程序开发—— app.json

    小程序根目录下的 app.json 文件用来对微信小程序进行全局配置.文件内容为一个 JSON 对象,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. app.json全局配置 小 ...

  6. 微信小程序全栈开发实践 第三章 微信小程序开发常用的API介绍及使用 -- 3.6 网络接口简介(六)关于Page页面隐藏代码执行及Promise对象catch处理的补充

    零.回顾 在上节课我们主要是基于 Promise 加 await.async关键字改写了登录模块代码, 但是我们在自动登录这一块的代码仍然有问题,这节课我们看一下, 如何在接口调用中实现微信用户的自动 ...

  7. 微信小程序全栈开发实践 第三章 微信小程序开发常用的API介绍及使用 -- 3.5 网络接口简介(五)基于Promise+await、async关键字改写登录模块

    零.回顾 在上节课我们主要实践练习了Promise的三个方法,包括any.all.race. 现在我们对Promise变成已经有了一个大致的了解. 这节课我们尝试将登录模块使用Promise编程方式进 ...

  8. 微信小程序开发环境/正式环境介绍。

    正常应用环境下,小程序要建立两套云开发环境,一套云开发环境用于开发人员开发测试会用,另一套环境用于正式上线时使用. 第一.可以进行环境区分,因为两套云开发环境里面有两套不同的云函数/云数据库/云存储等 ...

  9. 微信小程序全栈开发实践 第三章 微信小程序开发常用的API介绍及使用 -- 3.7 网络接口简介(七)学习EventChannel对象

    零.回顾 在之前我们自定义实现picker-view组件的时候, 曾经使用过一个pop-up的自定义组件, 这个组件可以在底部滑入一个面板, 现在我们把登录按钮放在底部滑入的面板之上, 然后在完成登录 ...

  10. 微信小程序开发-app开发公司-软件开发

    前言 5G,AI,AR,物联网,大数据,区块链,云计算 数字智能时代,实现未来智慧生活 链环科技,乘势而上 硬件对接,软件开发 Vue,Java,jQuery,PHP,JS,H5,C4D,PS- 主流 ...

最新文章

  1. 17 个方面,综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ
  2. 115网盘如何打开php文件格式,115网盘下载:因纽特语教材(初级+高级+音频)
  3. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 EventChannel 通信 )
  4. Gazebo添加模型并控制模型运动作为动态障碍物(Ubuntu16.04, Gazebo7.16),附录动态链接库和静态链接库区别
  5. 【转】提纲挈领webrtc之NS(noise suppression)模块
  6. 阿里二面:外部接口大量超时,把整个系统拖垮,引发雪崩!如何解决?熔断......
  7. 从零开始学前端:弹性盒模型(flex布局) --- 今天你学习了吗?(CSS:Day19)
  8. Windows Server 2012的服务管理自动化
  9. SPI通信协议简要介绍
  10. 电脑如何压缩图片大小kb?如何在线压缩图片?
  11. 此刻,投资自己,才是最好的投资
  12. vue漂亮的企业网站模板
  13. 央行等8部委发文规范供应链金融,严禁无牌开展相关业务
  14. 数据挖掘算法和实践(二十一):kaggle经典-职场离职率分析案例解读
  15. pvs linux_Linux下用于C ++开发的PVS-Studio静态分析器入门
  16. [ CTF ]【天格】战队WriteUp-第六届”蓝帽杯“全国大学生网络安全技能大赛(半决赛)
  17. html查看蛋白质,怎么查询蛋白质的全部信息-- UniProKB数据库
  18. 有限新息率FRI信号模型
  19. 【python】RuntimeError: Set changed size during iteration 问题解决
  20. firefox 扩展

热门文章

  1. 程序开发中常用的密码学家的算法推荐清单
  2. 数据抓取的艺术(一)
  3. 两个大数之间的乘积计算,string1=123456789...76,string2=23456...8957,求模拟计算机计算这两个数字的乘积。(C++实现)
  4. opencv图像连通区域分析
  5. Java httpClient 发送http请求
  6. 时分多路数字电话基带传输系统
  7. ZOJ - 2402 DP方案数
  8. DataFactory插入MySQL中文乱码问题
  9. 【转】C#正则表达式教程和示例
  10. 2016.05.17开通自己的博客