App()

App() 函数用来注册一个小程序。接受一个 object 参数(本质就是function 和 data),其指定小程序的生命周期函数等。

object参数说明:

属性 类型 描述 触发时机
onLaunch Function 生命周期函数–监听小程序初始化 当小程序初始化完成时,会触发 onLaunch(全局只触发一次
onShow Function 生命周期函数–监听小程序显示 当小程序启动,或从后台进入前台显示,会触发 onShow
onHide Function 生命周期函数–监听小程序隐藏 当小程序启动,或从后台进入前台显示,会触发 onShow
onError Function 错误监听函数 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
其他 Any   开发者可以添加任意的函数或数据到 Object 参数中,内部 用 this 可以访问 ,外部用 getApp() 访问

前台、后台定义:

当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并 没有直接销毁,而是进入了后台;
当再次进入微信或再次打开小程序,又会从 后台进入前台
需要注意的是:只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。

关闭小程序(基础库版本1.1.0开始支持):

当用户从 扫一扫、 转发等入口(场景值为 1007, 1008, 1011, 1025)进入小程序,且没有置顶小程序的情况下退出,小程序会被销毁。

一、获取app() 内容的方法

getApp()

此函数 为全局函数 可以用来获取到小程序 实例

代码(其他子文件中的js代码)

// other.js
var appInstance = getApp()
console.log(appInstance.globalData) // 控制台输出 :I am global data

注意:

  1. App() 必须在 app.js 中注册,且不能注册多个。
  2. 不要在定义于 App() 内的函数中调用 getApp() ,使用this 就可以拿到 app 实例。
  3. 不要在 onLaunch 的时候调用 getCurrentPages(),此时 page 还没有生成。
  4. 通过 getApp() 获取实例之后,不要私自调用生命周期函数

二、app.js文件是项目的入口文件:

//app.js
App({onLaunch: function () {// 展示本地存储能力var logs = wx.getStorageSync('logs') || []logs.unshift(Date.now())wx.setStorageSync('logs', logs)// 登录wx.login({success: res => {// 发送 res.code 到后台换取 openId, sessionKey, unionId}})// 获取用户信息wx.getSetting({success: res => {if (res.authSetting['scope.userInfo']) {// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框wx.getUserInfo({success: res => {// 可以将 res 发送给后台解码出 unionIdthis.globalData.userInfo = res.userInfo// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回// 所以此处加入 callback 以防止这种情况if (this.userInfoReadyCallback) {this.userInfoReadyCallback(res)}}})}}})},globalData: {userInfo: null}
})

页面的 page.js 文件会覆盖 app.js文件

App.js文件里面的一些方法:

onLaunch : function(){}:

onLoad:function(options){}:页面初始化 options 为页面跳转所传递过来的参数

onReady:function(){}:页面渲染完成

onShow:function(){}:页面显示

onHide:function(){}:页面隐藏

onUnload:function(){}:页面关闭

还可以在 app.js里面定义一些全局的方法:

例如:获取用户信息的方法(wx.getSetting)和属性(globalData):

在 page 页面如何获取 app.js 定义的属性:

首先在 page.js 文件里面:const  app = getApp(); 在对应方法里面直接console.log(  app.globalData.userInfo  );

实例:获取当前微信用户信息

这个可以用在登陆页:判断是否存在登陆。登陆过就改变 app.js 里面的配置。

使用:

例如这个用户是否登陆了,如果全局里面没有用户的信息,需要跳转到登陆的页面进行登陆,如果说有了用户的信息就不用跳转到登陆页面,当登陆完成之后,我们就可以设置全局的数据,然后返回到跳转的页面,直接读取用户的信息就可以。

问题:微信小程序开发之 --- app.js文件介绍相关推荐

  1. 为什么java下载安装程序很慢_【关注】微信小程序开发和APP开发的10种区别!

    在移动互联网大火的时代,APP和微信小程序已经成为了企业从移动端获取用户流量,实现盈利的重要端口. 因为微信小程序体积小,操作方便,省去了下载安装这一操作,导致这两年微信小程序的势头是越来越猛,甚至有 ...

  2. 菜谱分享网站微信小程序开发说明(1)-介绍与运行

    菜谱分享网站微信小程序开发说明(1)-介绍与运行 此项目是作为课设的小项目,实现的功能比较简单,可以入门练手~~也可以参考作为课设 使用技术栈 微信小程序原生框架 Spring Boot + MyBa ...

  3. 微信小程序开发与app开发的十大区别

    微信小程序开发是当下最具争议的话题,小程序在内测之初,市面上就已经出现了一些传言称:小程序将会取代App,但事实究竟如何呢?两者的区别又在哪里?CRMEB今天就从以下10点,说一说开发小程序与开发Ap ...

  4. 微信小程序开发和APP开发有哪些区别

    在移动互联网大火的时代,APP和微信小程序已经成为了企业从移动端获取用户流量,实现盈利的重要端口.因为微信小程序体积小,操作方便,省去了下载安装这一操作,导致这两年微信小程序的势头是越来越猛,甚至有说 ...

  5. 微信小程序开发—引用公共js里的方法

    一个小程序页面由四个文件组成,一个小程序页面的四个文件具有相同路径与文件名,由此我们可知一个小程序页面对应着一个跟页面同名的js文件.可是当有些公共方法,我们想抽离出来成为一个独立公共的js文件.我们 ...

  6. 微信小程序开发的四种文件

    最近在弄一个微信小程序,将看到的内容记录一下: 微信小程序中就四种类型的文件: js ---------- JavaScrip文件 json -------- 项目配置文件,负责窗口颜色等等 wxml ...

  7. 微信小程序开发入门教程-文本组件介绍

    学习小程序开发要从哪开始呢?我们是开始顺序学习官方文档么?如果一开始就从头开始读官方文档,恐怕用不了多久你就放弃了.计算机是一门实践科学,我们学习的目的是为了解决现实问题.要么你想在互联网创业,开发一 ...

  8. 微信小程序项目从app.js中获取数据

    背景图片设定为全屏显示只需要设定page页就好,background-size第一个值设置宽度,第二个值设置高度. page{ margin: 0; height: 100%; background- ...

  9. 微信小程序监听app.js中的globalData属性,

    // app.js中 //app.js App({onLaunch: function () {let that = this// 在这里用定时器模拟网络请求的过程setTimeout(functio ...

最新文章

  1. Linux中的文件复制:cp和scp
  2. php 蓝奏网盘上传文件,蓝奏云_文件上传_API
  3. axios (get post请求、头部参数添加)傻瓜式入门axios
  4. java的三个环境变量是啥_JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)...
  5. 36 MM配置-采购-采购订单-采购订单审批-编辑特性
  6. 前端开发 背景图 0229
  7. Exchange Server2010系列之三:Exchange Server部署完成后的配置
  8. 序列化:protobuf原理
  9. 打docker镜像_分分钟搞定阿里云私有Docke镜像仓库的搭建
  10. DOS常用命令(从入门到精通)
  11. 百度热力图颜色说明_各大软件地图中的热力图是什么?如何正确使用?收藏了...
  12. MySQL 必知必会系列(一)
  13. scrapy抓取的中文结果乱码解决办法
  14. vue通过腾讯Web(H5)播放器 ,实现直播点播
  15. 大家如何看待网络安全的重要性?
  16. 被互联网大厂空运到印度的年轻人
  17. 一个拼图软件项目Demo
  18. springboot2.3手册:5分钟用Netty搭建高性能异步WebSocket服务
  19. [小黄书后台]会员管理及微信授权登录
  20. 百度站长SEO自动推送软件工具 百度主动推送收录快吗

热门文章

  1. Kafka Topic分区手动迁移:kafka-reassign-partitions
  2. com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException UNAVAILABLE io exception
  3. k8s节点NotReady状态
  4. linux awk 字符串匹配,awk匹配字符串
  5. Idea的类注释和方法注释
  6. 甘恒通:腾讯信鸽海量移动推送服务构建
  7. 正激电路:半桥(波形解释)
  8. 【LTspice】009 低通、高通、带通滤波器
  9. 大数据峰会议题公开,顶级技术+实践经验先睹为快
  10. 卷积神经网络学习路线(二十一) | 旷世科技 ECCV 2018 ShuffleNet V2