App({ onLaunch: function(options) {}, onShow: function(options) {}, onHide: function() {}, one rror: function(msg) {}, globalData: 'I am global data' })
宿主环境提供了 App() 构造器用来注册一个程序App,需要留意的是App() 构造器必须写在项目根目录的app.js里,App实例是单例对象,在其他JS脚本中可以使用宿主环境提供的 getApp() 来获取程序实例。
tap(){ // 点击事件获取全局数据 console.log("单击"); console.log(getApp().globalData); },
小程序全局数据
我们在前面说到小程序的JS脚本是运行在JsCore的线程里,小程序的每个页面各自有一个WebView线程进行渲染,所以小程序切换页面时,小程序逻辑层的JS脚本运行上下文依旧在同一个JsCore线程中。
在上文中说道App实例是单例的,因此不同页面直接可以通过App实例下的属性来共享数据。App构造器可以传递其他参数作为全局属性以达到全局共享数据的目的。
在其他JS中可以通过getApp()获取App实例,之后可以获取到定义在App实例上的数据。