现在打开

app.js

//app.js
App({
onLaunch(options) {
//小程序初始化
// console.log("小程序初始化", options)
},
onShow(options) {
//小程序启动,或者由后台切换到前台
// console.log("小程序启动,或者由后台切换到前台", options);
},
onHide(options) {
//小程序切换到后台
console.log("小程序切换到后台", options);
wx.showToast({
title: '12345',
})
},
onError(options) {
//错误监听函数
console.log("错误监听函数", options); },
// onPageNotFound(options) {
// //页面不存在时监听函数
// console.log("页面不存在时监听函数", options)
// },
diy_add: {
str_name: "我是自定义添加的数据 str_name,可以被所有小程序页面使用",
fc_name() {
console.log("我是自定义添加的数据 str_fc,可以被所有小程序页面使用")
},
}
})

为了便于观察,我去除了里面多余的代码,并标出了个小程序生命周期的钩子函数,以及定义一些可以被所有页面使用的自定义变量

app()

app()这个方法的作用是注册一个小程序,每个小程序都需要在 app.js 中调用 App 方法注册小程序实例,绑定生命周期回调函数、错误监听和页面不存在监听函数等。它在全局中只执行,并且仅仅只能执行一次。否则会造成未知错误

生命周期钩子函数

介绍:生命周期钩子函数就是小程序运行到特定阶段中提供开发者编写自己业务逻辑的机会

onLaunch 小程序初始化之后,这个生命周期钩子函数全局只触发一次,小程序启动时触发一次之后,再不会触发。在这个阶段,小程序的初始化已经完成,你已经可以访问app()中自定义的数据。同时

onShow 小程序启动,可以触发多次,当小程序启动,或者小程序从后台进入前台时,都会触发这个函数,并且这两个函数,都接收一个参数,参数内容

onHide 小程序进入后台,可以触发多次当小程序计入后台时触发不接
 
onPageNotFound 小程序切换页面不存在时可以触发,这个钩子函数是一个很奇葩的存在,当你使用navigateTo等路由切换api切换到page的时候而page不存在,并不会触发这个函数,只会报个错误出来。这是官方的一个bug,不知道现在修复没有。

自定义项

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

如diy_add

idnex page:

  * 生命周期函数--监听页面加载
*/
onLoad: function (options) {
console.log(getApp());
},

结果

小程序学习三 一切的开始app() 小程序的注册的更多相关文章

  1. 微信小程序学习笔记(1)-微信小程序样式设置逻辑

    1.微信小程序的样式设置统一在每一页的.wxss的样式文件中,所有的样式设置代码统一写入这个文件中: 2.样式主要是通过.wxml里面控件的“class”属性来调用,此处调用会有几个细节要注意: 1) ...

  2. ballerina 学习 三十二 编写安全的程序

      ballerina编译器已经集成了部分安全检测,在编译时可以帮助我们生成错误提示,同时ballerina 标准库 已经对于常见漏洞高发的地方做了很好的处理,当我们编写了有安全隐患的代码,编译器就已 ...

  3. 微信小程序学习指南

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  4. 微信小程序学习笔记一 小程序介绍 & 前置知识

    微信小程序学习笔记一 1. 什么是小程序? 2017年度百度百科十大热词之一 微信小程序, 简称小程序, 英文名 Mini Program, 是一种不需要下载安装即可使用的应用 ( 张小龙对其的定义是 ...

  5. 微信小程序笔记<三>入口app.js —— 注册小程序

    小程序开发框架在逻辑层使用的语言就是JavaScript,所以想玩小程序JavaScript的基本功一定要扎实.但小程序基于js做了一些修改,以方便开发者更方便的使用微信的一些功能,使得小程序更好的贴 ...

  6. 微信小程序学习笔记(三)--框架-逻辑层

    逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈. 开发者写的所有代码最终将会打包成一份 JavaScript 文件,并在小程序启动的时候运行,直到小程序销毁.这一行为类似 Service ...

  7. 微信小程序学习

    官方网站 https://mp.weixin.qq.com/debug/wxadoc/dev/index.html 项目结构介绍 -- MINA框架 https://mp.weixin.qq.com/ ...

  8. 微信小程序学习笔记(阶段一)

    一阶段学习过程: (一)看官方文档的简易教程:https://mp.weixin.qq.com/debug/wxadoc/dev/ (二)看小码哥视频:https://chuanke.baidu.co ...

  9. Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解

    Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解 说明:Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解,加密算法,是现在每个软件项目里必须用到的内容. 广泛应用在包括 ...

随机推荐

  1. tinkphp5.0目录结构说明

    tinkphp5.0目录结构说明 project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ├─index 模块目录(可更改) │ ...

  2. $@、$*和环境变量IFS

  3. Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS、YARN、MR)安装

    虽然我已经装了个Cloudera的CDH集群(教程详见:http://www.cnblogs.com/pojishou/p/6267616.html),但实在太吃内存了,而且给定的组件版本是不可选的, ...

  4. new和delete,p150

    创建对象,不带()的称为不提供显式初始化,()为空的称为值初始化. 内置类型和没定义默认ctor的类型,不带()未初始化,带()初始化为0.但有默认构造函数的,带不带()都是利用默认构造函数初始化. ...

  5. vue filters 日期

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. mysql中创建函数

    MySql创建函数 一.查看创建函数的功能是否开启: mysql> show variables like '%func%'; +-------------------------------- ...

  7. java 多上传 CommonsMultipartFile[] files

    /** * 视频上传 * ddl * @param request * @param response * @param files * @return * @throws Exception */@ ...

  8. Comet Contest#11 F arewell(DAG计数+FWT子集卷积)

    传送门. 题解: 4月YY集训时做过DAG计数,和这个基本上是一样的,但是当时好像直接暴力子集卷积,不然我省选时不至于不会,这个就多了个边不选的概率和子集卷积. DAG计数是个套路来的,利用的是DAG ...

  9. 管理mysql

    要管理MySQL,可以使用可视化图形界面MySQL Workbench. MySQL Workbench可以用可视化的方式查询.创建和修改数据库表,但是,归根到底,MySQL Workbench是一个 ...

  10. android ellipsize的使用及实现跑马灯效果总结

    参考资料: http://blog.csdn.net/huiwolf2008/article/details/7901084 http://www.cnblogs.com/Gaojiecai/arch ...