微信小程序中使用的逻辑文件 ,本质上还是.js 文件,脚本中的很多东西进行了二次封装,本质上可以在外部调试中,查看

逻辑层(App Service)

小程序开发框架的逻辑层由 JavaScript 编写。

逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。

与 原生 JavaScript 不同的是 :
  1. 增加 AppPage 方法,进行程序和页面的注册
  2. 增加 getAppgetCurrentPages方法,分别用来获取 App 实例当前页面栈
  3. 提供丰富的 API,如微信用户数据,扫一扫,支付等微信特有能力
  4. 每个页面有独立的作用域,并提供模块化能力。
  5. 由于框架并非运行在浏览器中,所以 JavaScript 在 web 中一些能力都无法使用,如document,window等。
  6. 开发者写的所有代码最终将会打包成一份 JavaScript,并在小程序启动的时候运行,直到小程序销毁。(类似 ServiceWorker,所以逻辑层也称之为 App Service。)

以下是各类方法(函数)的使用



全局 app.js 函数

App()

App() 函数用来注册一个小程序。接受一个 object 参数(本质就是function 和 data),其指定小程序的生命周期函数等。

object参数说明:

属性 类型 描述 触发时机
onLaunch Function 生命周期函数–监听小程序初始化 当小程序初始化完成时,会触发 onLaunch(全局只触发一次
onShow Function 生命周期函数–监听小程序显示 当小程序启动,或从后台进入前台显示,会触发 onShow
onHide Function 生命周期函数–监听小程序隐藏 当小程序从前台进入后台,会触发 onHide
onError Function 错误监听函数 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
其他 Any 开发者可以添加任意的函数或数据到 Object 参数中,内部 用 this 可以访问 ,外部用 getApp() 访问

前台、后台定义:

当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并 没有直接销毁,而是进入了后台;
当再次进入微信或再次打开小程序,又会从 后台进入前台
需要注意的是:只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。
关闭小程序(基础库版本1.1.0开始支持):
当用户从 扫一扫转发等入口(场景值为 1007, 1008, 1011, 1025)进入小程序,且没有置顶小程序的情况下退出,小程序会被销毁。

代码:

var load = {onLaunch: function(options) {// Do something initial when launch.},onShow: function(options) {// Do something when show.},onHide: function() {// Do something when hide.},onError: function(msg) {console.log(msg)},globalData: 'I am global data'
}App(load)

app()函数中object对象参数

onLaunch, onShow 参数
字段 类型 说明
path String 打开小程序的路径
query Object 打开小程序的query(询问)
scene Number 打开小程序的场景值
shareTicket String 获取转发信息
referrerInfo Object 当场景为由从另一个小程序或公众号或App打开时,返回此字段
referrerInfo.appId String 来源小程序或公众号或App的 appId
referrerInfo.extraData Object 来源小程序传过来的数据,scene=1037或1038时支持

以下场景支持返回 referrerInfo.appId

场景值 场景 appId 信息含义
1020 公众号 profile 页相关小程序列表 返回来源公众号 appId
1035 公众号自定义菜单 返回来源公众号 appId
1036 App 分享消息卡片 返回来源应用 appId
1037 小程序打开小程序 返回来源小程序 appId
1038 从另一个小程序返回 返回来源小程序 appId
1043 公众号模板消息 返回来源公众号 appId

获取app() 内容的方法

getApp()

此函数 为全局 函数 可以用来获取到小程序 实例

代码(其他子文件中的js代码)

// other.js
var appInstance = getApp()
console.log(appInstance.globalData) // 控制台输出 :I am global data

注意:

  1. App() 必须app.js 中注册,且不能注册多个。
  2. 不要在定义于 App() 内的函数中调用 getApp() ,使用this 就可以拿到 app 实例。
  3. 不要在 onLaunch 的时候调用 getCurrentPages(),此时 page 还没有生成。
  4. 通过 getApp() 获取实例之后,不要私自调用生命周期函数

微信小程序开发(五) - 全局(app.js)逻辑 - js 文件相关推荐

  1. 微信小程序开发 - 实现pdf、word等格式文件上传到后端的方法

    写在前面 我发现,微信的wx.uploadFile接口限制好多,而且会经常性出现bug,所以今天搜了一上午的资料, 看看能不能不要通过这个接口上传multipart/form-data格式的文件. 后 ...

  2. iconpath 微信小程序_微信小程序开发(全局配置文件)

    目录: papes字段window字段tabbar字段 微信小程序中全局配置文件指:app.json文件,该文件通过微信开发者工具新建项目后会自动生成,无需自己手动创建.本文主要来了解一下全局配置文件 ...

  3. 微信小程序开发的全局配置和局部配置(逆战)

    全局配置 小程序根目录下的 app.json 文件用来对微信小程序进行全局配置. 全局配置 页面配置 每一个小程序页面也可以使用 .json 文件来对本页面的窗口表现进行配置.页面中配置项在当前页面会 ...

  4. 微信小程序开发《6 .框架之逻辑层》

    逻辑层(App Service) 小程序开发框架的逻辑层由 JavaScript 编写.逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈. 注册程序App App() App() 函数用来 ...

  5. 微信小程序开发笔记 进阶篇③——onfire.js事件订阅和发布在微信小程序中的使用

    文章目录 一.前言 二.onfire.js介绍 三.API介绍 四.实例应用 五.onfire源码 六.实例源码 一.前言 微信小程序开发笔记--导读 二.onfire.js介绍 一个简单实用的事件订 ...

  6. 微信小程序开发(十)小程序支付-查询退款

    应用场景 提交退款申请后,通过调用该接口查询退款状态.退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态. 接口说明 这里退款还是根据商户订单号-out_tr ...

  7. node.js 微信小程序 部署服务器_微信小程序开发入门(一),Nodejs搭建本地服务器...

    1.  如何模拟真实环境中,读取服务端数据,首先需要使用Nodejs搭建一个本地服务器的环境. 在搭建web服务器之前,需要先安装node.js(安装版本最好为6.9.x) 安装后node.js,接下 ...

  8. 微信小程序开发学习6(基础加强之使用npm包和全局数据共享及分包【Tab底栏案例改进】)

    微信小程序开发学习6(基础加强之使用npm包和全局数据共享及分包) 1.使用npm包 小程序对npm包的支持 目前,小程序中已经支持使用p安装第三方包,从而来提高小程序的开发效率.但是,在小程序中使用 ...

  9. 自学微信小程序开发第五天- 页面切换相关

    自学微信小程序开发第五天- 页面切换相关 创建多个页面 页面间跳转 页面间传值 另一个页面跳转的方式(重定向) 点击跳转元素时的样式 导航API 研究过页面样式设计后,就是多页面的呈现了,这就需要研究 ...

最新文章

  1. Android 入门开发
  2. C#精髓【月儿原创】第二讲 WMI完美秀出CPU编号厂商主频百分比等全部信息
  3. MySql 日志查看与设置
  4. RabbitMQ 快速入门
  5. ajax中dom,在(jQuery)ajax请求中获取当前脚本DOM对象
  6. gradient渐变IE兼容处理
  7. 【转载】MongoDB基本操作
  8. 「代码随想录」416. 分割等和子集【动态规划】力扣详解!
  9. 深度学习硬件:CPU 和 GPU 动手学深度学习v2
  10. 做Data Mining,其实大部分时间都花在清洗数据
  11. 军用软件开发周期和文档
  12. js新窗口打开页面固定尺寸大小
  13. json 转 map,循环得到 key,value
  14. 3559A对接IMX577 4lane 12M
  15. [SPRD]展锐Android R关机充电动画修改
  16. Opencv图像基本操作——读取、显示、截取图像、属性、颜色通道、边界填充、图像融合
  17. 查看linux服务器存储空间状况
  18. string+DFS leetcode-17.电话号码下的字母组合
  19. 3. JS编程之移除数组中的元素
  20. Phonics 自然拼读法 g, o, u, l, f, b Teacher:Lamb

热门文章

  1. 如何修改视频分辨率?
  2. 大数据的几个特点(4V)
  3. JVM调优总结(1)
  4. Mask Scoring Rcnn论文解读《Mask Scoring R-CNN》
  5. 【ELT.ZIP】OpenHarmony啃论文俱乐部——轻翻那些永垂不朽的诗篇
  6. 楷书书法规则_硬笔书法中楷书结构八条原则
  7. 数据我爬定了,限流也挡不住,我说的
  8. 8年老码农现身说法:大龄程序员找工作,为什么这么难?
  9. Kali学习 | 无线渗透:7.9 Arpspoof工具
  10. Maven(m2e)集成之二