• 开发教程与代码示例
  • 入门
  • 小程序框架
  • 框架概述
  • 逻辑层
  • App
  • 页面
  • 页面生命周期
  • 页面路由
  • 模块化
  • API
  • 视图层
  • 小程序运行时
  • 自定义组件
  • 基础教程
  • 能力教程
  • 性能优化
  • 安全
  • app.js 文件是小程序的逻辑文件,主要负责创建全局小程序应用实例(App()),配置生命周期,声明全局数据、调用 API 等。

    App()

    App(params) 是框架启动小程序的入口函数,需要开发者可以通过 App(params)的参数指定小程序的生命周期函数和其他一些自定义参数。

    params 参数说明

    属性
    类型
    描述
    触发时机
    onLaunch
    Function
    生命周期函数--监听小程序初始化
    小程序冷启动完成时触发,全局只触发一次。
    onShow
    Function
    生命周期函数--监听小程序显示
    当小程序启动,或从后台进入前台显示,会触发 onShow。
    onHide
    Function
    生命周期函数--监听小程序隐藏
    当小程序从前台进入后台,会触发 onHide。
    onError
    Function
    错误监听函数
    当小程序发生脚本错误,或者 API 调用失败时,会触发 onError 并带上错误信息。
    onPageNotFound
    Function
    页面不存在监听函数
    当小程序要打开的页面不存在时,触发事件的回调函数。
    onUnhandledRejection
    Function
    未处理的 Promise 拒绝事件监听函数。
    当小程序有未处理的 Promise 拒绝时触发。
    其他
    Any
    开发者可以添加任意的函数或数据到 Object 参数中,用 this 可以访问。

    示例代码

    App({ 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); }, onPageNotFound: function (msg) { // Do something when page path is not found. }, onUnhandledRejection: function (res) { // Do something when unhandled rejection occurs. }, globalData: "I am global data", });

    onLaunch 参数

    onLaunch 参数同tt.getLaunchOptionsSync

    onShow 参数

    属性
    类型
    说明
    path
    String
    启动页面
    query
    Object
    启动参数
    referrerInfo
    Object
    来源信息。从另一个小程序进入小程序时返回。
    scene
    String
    场景值
    showFrom
    Number
    唤起小程序页面的来源方式,10 表示用户点击小程序入口 schema,0 表示其它方式,比如前后台切换。

    referrerInfo 说明

    字段
    类型
    说明
    appId
    String
    来源小程序的 AppID
    extraData
    Object
    来源小程序打开当前小程序时携带的数据

    onPageNotFound

    当要打开的页面并不存在时,会回调这个监听器,并带上以下信息:
    属性
    类型
    说明
    path
    String
    不存在页面的路径
    query
    Object
    打开不存在页面的 query
    isEntryPage
    Boolean
    是否本次启动的首个页面
    注意:此钩子只有小程序启动时才会触发。
    示例代码:
    App({ onPageNotFound(res) { tt.redirectTo({ url: "pages/...", }); // 重定向页面;如果是 tabbar 页面,请使用 tt.switchTab }, });

    onUnhandledRejection

    小程序有未处理的 Promise 拒绝时触发。也可以使用 tt.onUnhandledRejection 绑定监听。注意事项请参考 tt.onUnhandledRejection。
    属性
    类型
    说明
    reason
    string
    拒绝原因,一般是一个 Error 对象
    promise
    Promise
    被拒绝的 Promise 对象
    示例代码:
    App({ onUnhandledRejection(res) { // Promise 异步异常处理逻辑 }, });

    getApp()

    如果想在 page 里面获取 App() 设置的全局变量的话,可以通过 getApp() 获取。
    整个小程序只有一个 App 实例,是全部页面共享的。
    如果想在 page 里面获取 App() 设置的全局变量的话,可以通过 getApp()方法获取到全局唯一的 App 实例,获取 App 上的数据或调用开发者注册在 App 上的函数。
    示例代码:
    var appInstance = getApp(); console.log(appInstance.globalData); // I am global data