现在打开

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. 自定义servlet重写doGet或者doPost方法时,405 method not allowed

    自定义servlet public class TestServlet extends HttpServlet { @Override protected void doGet(HttpServlet ...

  2. 案例-3D旋转木马

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. CSS和jQuery分别实现图片无缝滚动效果

    一.效果图 二.使用CSS实现 <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...

  4. 第一章 笔记本电脑安装Linux系统(Centos7)

    目标:通过[Linux+Docke+Nginx+Jenkins+k8s(Kubernetes)+CICD(自动化)]进行项目部署 内容:根据个人进度实时分章节记录自己所遇到的问题 一.准备工作 1.下 ...

  5. KiCAD层颜色修改

    KiCAD层颜色修改 KiCAD的PCB各层的颜色太过于暗淡,有时可能不适合操作者的习惯,尤其是铜层(布线层),这时候就需要去修改层的颜色,具体操作如下图:选择想要修改的层,双击左边颜色框框,进入之后 ...

  6. Spring的PropertyPlaceholderConfigurer应用(转)

    转自:http://www.cnblogs.com/yl2755/archive/2012/05/06/2486752.html Spring 利用PropertyPlaceholderConfigu ...

  7. nginx进行获取阿里云slb真实ip配置操作

    环境: 1.使用阿里云的slb进行配置nginx,nginx无法获取用户的真实ip解决方案 参考阿里云: https://help.aliyun.com/knowledge_detail/40535. ...

  8. c++之初始化列表

    #include<iostream> using namespace std; class Person{ public: int m_a; int m_b; int m_c; Perso ...

  9. swiper轮播箭头垂直居中

    取消懒加载 for (var i in $('.p01-s9 .lazyload')) { $('.p01-s9 .lazyload').eq(i).attr('src',$('.p01-s9 .la ...

  10. 【Flutter学习】基本组件之基本网格Gradview组件

    一,概述 数据量很大的时用矩阵方式排列比较清晰,此时用网格列表组件,即为GridView组件,可实现多行多列的应用场景. 使用GridView创建网格列表有多种方式: GridView.count 通 ...