登录

使用app.js里定义的全局方法 App() 必须在 app.js 中调用,必须调用且只能调用一次

1970-01-01 ·微信小程序

app.js,全局方法 App(),App Service

逻辑层 App Service

小程序开发框架的逻辑层使用 JavaScript 引擎为小程序提供开发者 JavaScript 代码的运行环境以及微信小程序的特有功能。

逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。

开发者写的所有代码最终将会打包成一份 JavaScript 文件,并在小程序启动的时候运行,直到小程序销毁。这一行为类似 ServiceWorker,所以逻辑层也称之为 App Service。

在 JavaScript 的基础上,我们增加了一些功能,以方便小程序的开发:


  • 增加 App 和 Page 方法,进行程序注册页面注册
  • 增加 getApp 和 getCurrentPages 方法,分别用来获取 App 实例和当前页面栈。
  • 提供丰富的 API,如微信用户数据,扫一扫,支付等微信特有能力。
  • 提供模块化能力,每个页面有独立的作用域


注意:小程序框架的逻辑层并非运行在浏览器中,因此 JavaScript 在 web 中一些能力都无法使用,如 window,document 等。


注册小程序

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

详细的参数含义和使用请参考 App 参考文档 。

// app.js App({ onLaunch (options) { // Do something initial when launch. }, onShow (options) { // Do something when show. }, onHide () { // Do something when hide. }, onError (msg) { console.log(msg) }, globalData: "I am global data" })

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

// xxx.js const appInstance = getApp() console.log(appInstance.globalData) // I am global data
app.js作为项目的入口文件,用于创建应用程序对象
//App函数是一个全局函数,用于创建应用程序对象 App({ // =======全局数据对象(可以整个应用程序共享)====== globalData:{ ... }, //======应用程序全局方法====== methid1(p1,p2){ ... }, methid1(p1,p2){ ... }, //======生命周期方法====== //应用程序启动时触发一次 onLaunch(){ ... }, //当应用程序进入前台显示状态时触发 onShow(){ ... }, //当应用程序进入后台状态时触发 onHide(){ ... } }) ###### 小程序-调用公共js对象方法/ app.js ### 在小程序中,如果在子页面想调用共公js的方法,需先在子页面js中先实例化app:具体过程如下  子页面js: //调用公共js对象以便调用其方法 var app = getApp();//获取应用实例 // console.log(app)//可查看公共js(app.js)的方法 Page({ data: { "headtxt":app.productshead()//调用公共appjs的方法 } }) 

这是小程序的全局配置js文件

在app.js文件中,代码必须都写在APP({ })里面,且必须要有 APP({ })
例如有公共的函数方法,建议写在这个文件中

app.wxss这个文件存在的就是全局的css样式,

例如定义所有的class="font15" 那么可以在这个文件夹中.font15{font-size: 15px}

app.json 存放1 小程序的样式      2 小程序里预加载的项目

小程序系统的TabbAR只能在首页设置,不能在二三级页面设置


· END ·

TAG:app.js,全局方法 App(),App Service 来源:网络

热门标签

首页 - 导航 - 免责 - 官方微信 - 用户反馈

© 2021 GOODTEXT.CN