微信小程序(三),小程序的生命周期

每个小程序都需要在 app.js 中调用 App 方法注册小程序实例,绑定生命周期回调函数、错误监听和页面不存在监听函数等。

 

            /** 生命周期回调—监听页面加载
             *
             * 页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径            
            中的参数。
             */
         onLoad(
             /** 打开当前页面路径中的参数 */
                query: Record<string, string | undefined>,
            ): void
            /** 生命周期回调—监听页面显示
             *
             * 页面显示/切入前台时触发。
             */
        onShow(): void
            /** 生命周期回调—监听页面初次渲染完成
            *
            * 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进 
            行交互。
            *

           * 注意:对界面内容进行设置的 API 如`wx.setNavigationBarTitle`,请在`onReady`之后 
             进行。
              */
         onReady(): void
            /** 生命周期回调—监听页面隐藏
             *
             * 页面隐藏/切入后台时触发。 如 `navigateTo` 或底部 `tab` 切换到其他页面,小程序切 
                入后台等。
             */
         onHide(): void
            /** 生命周期回调—监听页面卸载
             *
             * 页面卸载时触发。如`redirectTo`或`navigateBack`到其他页面时。
             */
         onUnload(): void
            /** 监听用户下拉动作
             *
             * 监听用户下拉刷新事件。
             * - 需要在`app.json`的`window`选项中或页面配置中开启`enablePullDownRefresh`。
             * - 可以通过`wx.startPullDownRefresh`触发下拉刷新,调用后触发下拉刷新动画,效果 
                与用户手动下拉刷新一致。
             * - 当处理完数据刷新后,`wx.stopPullDownRefresh`可以停止当前页面的下拉刷新。
             */
        onPullDownRefresh(): void
            /** 页面上拉触底事件的处理函数
             *
             * 监听用户上拉触底事件。
             * - 可以在`app.json`的`window`选项中或页面配置中设置触发距离 
              `onReachBottomDistance`。
             * - 在触发距离内滑动期间,本事件只会被触发一次。
             */
         onReachBottom(): void
            /** 用户点击右上角转发
             *
             * 监听用户点击页面内转发按钮(`<button>` 组件 `open-type="share"`)或右上角菜单 
             “转发”按钮的行为,并自定义转发内容。
             *
             * **注意:只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮**
             *
             * 此事件需要 return 一个 Object,用于自定义转发内容
             */
         onShareAppMessage(
                /** 分享发起来源参数 */
                options: IShareAppMessageOption,
            ): ICustomShareContent
            /** 页面滚动触发事件的处理函数
             *
             * 监听用户滑动页面事件。
             */
         onPageScroll(
                /** 页面滚动参数 */
                options: IPageScrollOption,
            ): void

            /** 当前是 tab 页时,点击 tab 时触发,最低基础库: `1.9.0` */
         onTabItemTap(
                /** tab 点击参数 */
                options: ITabItemTapOption,
            ): void

            /** 窗口尺寸改变时触发,最低基础库:`2.4.0` */
         onResize(
                /** 窗口尺寸参数 */
                options: IResizeOption,
            ): void

整个小程序只有一个 App 实例,是全部页面共享的。开发者可以通过 getApp 方法获取到全局唯一的 App 实例,获取App上的数据或调用开发者注册在 App 上的函数。

// xxx.js
const appInstance = getApp()
console.log(appInstance.globalData) // I am global data

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值