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(); // 调用全局方法
App() 必须在 app.js 中注册,且不能注册多个。- 不要在定义于 App() 内的函数中调用 getApp() ,使用 this 就可以拿到 app 实例。微信小程序App()方法与getApp()方法
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

