用户工具

站点工具


mina:app_function

4.App() 函数

1. App()

App()函数用来注册一个小程序。接受一个object参数,其指定小程序的生命周期函数等。参考微信小程序 注册程序 App()函数

:!: App() 必须在 app.js 中调用,必须调用且只能调用一次。不然会出现无法预期的后果。

//根目录下的app.js
App({
  onLaunch: function(options) { 
    console.log("onLaunch");
  },
  onShow: function(options) {
      console.log("onShow");
  },
  onHide: function() {
      console.log("onHide");
  },
  onError: function(msg) {
      console.log(msg);
  },
  test: function(){
      console.log("I am func from App.js");
  },
  globalData: {
      userInfo: null,
      helloFromAPP:'Hello,I am From APP.JS'
  }
})

1.1 object 参数

:!: 最外层的整个{ }就是一个 object 参数

1.1.1 onLaunch()

小程序初始化完成时触发,全局只触发一次。参数也可以使用 wx.getLaunchOptionsSync 获取。

* 来源小程序、公众号或 App 的 appId

1.1.2 onShow()

小程序启动,或从后台进入前台显示时触发。也可以使用 wx.onAppShow 绑定监听。

2. getApp()

开发者可以通过 getApp 方法获取到全局唯一的 App 示例,获取App上的数据或调用开发者注册在 App 上的函数。

:?: 在其他子页面如何使用呢?

// 其他文件下的index.js
var app = getApp();
console.log(app.globalData.helloFromApp); // 调用全局变量
app.test(); // 调用全局方法

this.globalData.userInfo = res.userInfo

不要在 onLaunch 的时候调用 getCurrentPages(),此时 page 还没有生成。

3. GlobalData

如果希望在各个页面之间共同使用某些信息,并且可以对共享数据进行修改设置,以便于其他页面根据数据变化进行对应的调整,最好使用全局数据globalData。

3.1 在app.js文件

在app.js文件中,怎样设置和修改。设置其实跟在其他js文件中设置data值是一样的:微信小程序 如何使用globalData

//app.js
App({
    globalData: {
        name: '张三',
        age: 18
    }
})

根据自己的需求,设置任何数据。在app.js中读取globalData,使用this就可以

//app.js
App({
    globalData: {
        name: '张三',
        age: 18
    },
    onLoad: function(){
        console.log(this.globalData.name);
    }
})

如果我们需要在app.js中修改globalData,只需要给对应的变量重新赋值就可以

//app.js
App({
    globalData: {
        name: '张三',
        age: 18
    },
    onLoad: function(){
        this.globalData.name = '李四'
    }
})

3.2 其他页面

在其他页面读取以及修改globalData。不论是读取还是修改,首先需要在应用的页面js文件中,引用app()实例,所以在js文件中,第一句要写上这句

var app = getApp();

然后

//index.js
var app = getApp();
Page({
    onLoad: function() {
        console.log(app.globalData.name);
    }
})
mina/app_function.txt · 最后更改: 2020/08/24 14:05 由 sabertoy