1.注册程序
1)App(OBJECT)方法
小程序注册,指定小程序的生命周期函数
OBJECT参数如下:
ps:App()方法只能写在小程序根目录下app.js文件中,且只能注册一个
小程序前台 vs 小程序后台
onLaunch()、onShow()、onError()方法在触发时会返回参数,用户可利用参数进行状态判断和处理,其中onLaunch和onShow返回参数名称完全相同,返回参数如下:
支持返回的场景值为:
ps:除函数外,也支持添加自定义全局变量
2)onPageNotFound()方法
需要打开页面不存在时,微信有原生模板页面提示,想自行处理需要用这个方法,会回调这个方法并带有3个参数
示例代码:
ps:如果回调中又重定向到另一个不存在页面,将重定向到微信自带原生模板页面提示页面不存在,且不再触发此方法
3)getApp()方法
在小程序的其他JS文件中可使用全局的getApp()方法获取小程序实例,但用户不可以在app.js的App()函数内部调用getApp()方法,可以用关键字this代替
2.注册页面
用Page(OBJECT)方法进行页面注册,该方法用于指定小程序页面的生命周期函数。参数如下:
可以添加自定义的页面变量
1)初始数据
data属性,是页面第一次渲染使用的初始数据。页面加载时,会以json字符串形式由逻辑层传到渲染层。渲染层可以通过wxml对数据进行绑定。
2)生命周期回调函数
3)页面事件处理函数
onShareAppMessage()的参数对象
返回的Object对象,用来自定义转发内容
示例:
Page({
onShareAppMessage:function(res){
if(res.from === 'button){
console.log(res.target) //页面内“转发”按钮的信息
}
return {
title: '高校新闻' //自定义转发标题
path: '/pages/user?id=123' //自定义转发页面路径,id=123是自定义参数内容
}
}
})
onTabItemTap(OBJECT):单击tab时触发,object参数如下:
4)组件事件处理函数
在wxml页面的组件上添加事件绑定,当事件被触发时就会主动执行Page()中对应的事件处理函数
5)route
可以使用this.route查看当前页面的路径地址
6)setData()
用来同步更新data属性中的数据值,也能异步更新相关数据到wxml页面上,参数如下:
ps:可以用此方法设置一些新定义的变量
7)生命周期
小程序应用与页面有各自的生命周期函数,在使用过程中会互相影响。
小程序应用:
页面:
3.页面路由
1)页面栈
小程序中页面之间切换由框架统一管理,框架以栈的形式维护了当前所有页面。发生路由切换时,页面栈表现如下:
2)获取页面栈
通过getCurrentPages()方法获取当前页面栈的实例,实例将以数组形式按栈的顺序给出。其中,第一个元素为首页,最后一个元素为当前页面。
3)路由方式
举例:A B是tabBar页面 C是从A打开的页面 D是从C打开的页面,tab切换对应的生命周期如下:
4.模块化
1)文件的作用域
在小程序任意js文件中声明的变量和函数只在该文件中有效,不同js文件中可以声明相同名字的变量和函数,不会互相影响。
需要跨页面进行数据共享,可在app.js中定义全局变量,然后在其他js文件中使用getApp()获取和更新。
2)模块的调用
模块只能通过module.exports或者exports对外提供接口,需要调用的页面通过require(相对路径)
ps:不能用绝对路径
5.API