一 什么是page()

page(),是一个函数,用来注册一个页面,
接受一个object参数,
指定页面的初始数据,生命周期函数,事件处理函数
等等

object参数说明:

(1)data (object)

页面的初始数据
初始化数据
初始化数据将作为页面的第一次渲染,
data将会以JSON的形式有逻辑层传至渲染层
所以其数据必须是可以
转成JSON的格式
(字符串,数字,布尔值,对象,数组)
渲染层可以通过WXML对数据进行绑定
 
初始化数据示例代码.png

(2)onLoad(function)

生命周期函数--监听页面加载
页面加载onLoad
一个页面只会调用一次
接收页面参数可以获取
wx.navigateTo,wx.redirectTo, <navigator/>中的query

(3)onReady (function)

生命周期函数--监听页面初次渲染完成

(4)onShow (function)

生命周期函数--监听页面显示
页面显示onShow
每次打开页面都会调用一次
页面初次渲染完成onReady
一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互
对界面的设置如
wx.setNavigationBarTitle请在onReady之后设置

(5)onHide (function)

生命周期函数--监听页面隐藏
页面隐藏onHide
当navigateTo或者底部tab切换时候调用

(6)onUnload(function)

生命周期函数--监听页面卸载
页面卸载onUnload
当redirectTo或者navigateBack的时候调用

(7)onPullDownRefresh (function)

页面相关事件处理函数--监听用户下拉动作
页面相关事件的处理函数
onPullDownRefresh:下拉刷新
监听用户下拉刷新事件
需要在config的window选项中开启enablePullDownRefresh
当处理完数据刷新后,
wx.stopPullDownRefresh可以停止当前页面的下拉刷新

(8)onReachBottom (function)

页面上拉触底事件的处理函数

(9)其他 (Any)

开发者可以添加任意的函数或者数据到object参数中,
在页面的函数中用this可以访问
 
page示例代码.png

二 事件处理函数

除了初始化数据和生命周期函数,
page中还可以定义一些特殊的函数,
事件处理函数,
在渲染层可以在组件中加入事件绑定,
当达到触发事件后,
就会执行page中定义的事件处理函数
 
事件处理函数示例代码.png

(1)Page.prototype.setData()

setData
函数用于将数据从逻辑层发送到视图层,
同时改变对应的 this.data的值
注意:
直接修改 this.data 无效,
无法改变页面的状态,
还会造成数据不一致。
单次设置的数据不能超过1024kB,
请尽量避免一次设置过多的数据
setData()参数格式
接受一个对象,
以key,value的形式表示将this.data中的key对应的值改为value
key可以非常灵活,以数据路径的形式给出
 
setData()函数示例代码(1).png
 
setData()函数示例代码(2).png

(2)getCurrentPages()

getCurrentPages() 函数用于获取当前页面栈的实例,
以数组形式按栈的顺序给出,第一个元素为首页,最后一个参数是当前页
注意:不要尝试修改页面栈,会导致路由以及页面状态错误

三 页面栈

框架以栈的形式维护了当前的所有页面,当发生路由切换的时候,页面栈的表现如下:
初始化 新页面入栈
打开新页面 新页面入栈
页面重定向 当前页面出栈,新页面入栈
页面返回 页面不断出栈,直到目标返回页,新页面入栈
Tab 切换 当前页面出栈,新页面入栈

四 生命周期

 
生命周期图(1).png
 
生命周期图(2).png

五 页面的路由

在小程序中,所有页面的路由全部由框架进行管理,对于路由的触发方式以及页面生命周期函数如下:
路由方式——触发时机——路由后页面——路由当前页
(1)
初始化——
小程序打开的第一个页面——onLoad,onShow
(2)
打开新页面——
调用API(wx.navigateTo)或者使用组件<navigator/>——onLoad,onShow——
onHide
(3)
页面重定向——
调用 API (wx.redirectTo)或使用组件 <navigator />——onLoad,onShow——
onUnload
(4)
页面返回——
调用API(wx.navigateBack)或者用户按左上角返回按钮——onShow——
onUnload(多层页面返回每个页面都会按顺序触发onUnload)
(5)
Tab 切换——
多 Tab 模式下用户切换 Tab——
第一次打开 onLoad,onshow;否则 onShow——
onHide

微信小程序-page的更多相关文章

  1. 微信小程序-Page生命周期

    QQ讨论群:785071190 微信小程序开发之前我们还需认识一下小程序页面的生命周期,丛"微信小程序-代码构成"一文中我们可以了解到小程序页面中有一个.js的文件,这篇博文我们来 ...

  2. 微信小程序 --- page.js文件

    page.js文件是写当前 page.wxml 页面的 JS 脚本文件: 示例: //获取应用实例 const app = getApp() Page({ data: { navComOneOnOff ...

  3. 微信小程序 --- page.json文件

    page.json 文件用于配置当前目录.page.json文件里的配置可以修改 app.json 配置里面的 window:不能覆盖app.json文件里面的 tabBar / 网络超时/ debu ...

  4. 扩展微信小程序 Page 构造函数,修改生命周期函数

    不BB,直接正题 一. 将公共方法绑定到Page上 单个绑定 const oldPage = Page Page = function(app) { // 注意公共函数的名字不要重复,否则覆盖 app ...

  5. 微信小程序 Page构造函数重写

    //utils/utils.js const oldPage = Page; console.log(oldPage) Page = function (app) { //定义新函数 app.newS ...

  6. 微信小程序page的生命周期和音频播放及监听

    一.界面的生命周期 /** * 监听页面加载, * 页面加载中 */ onLoad:function(){ var _this = this console.log('index---------on ...

  7. 微信小程序个人心得

    尊重原创:http://blog.csdn.net/qq_28832135/article/details/52796048 昨天看了一下微信小程序官方文档,总结一下自己学习的个人心得. 首先从官方文 ...

  8. 微信小程序心得

    首先从官方文档给的框架说起,微信小程序官方文档给出了app.js, app.json, app.wxss. 先从这三个文件说起. - app.js 这个文件是整个小程序的入口文件,开发者的逻辑代码在这 ...

  9. [转]微信小程序,开发大起底

    本文转自:http://blog.csdn.net/baiyuzhong2012/article/details/54378497 作者简介:张智超,北京微函工坊开发工程师,CSDN微信开发知识库特邀 ...

随机推荐

  1. 帮助自定义选择框样式的Javascript - DropKick.js

    来源:GBin1.com 在线演示  在线下载 当你想要设计一个页面样式时,没有什么比表单更让人头疼了.而当你设计一个表单的样式时,最让你头疼的就应该非下拉框<select>莫属了. 我们 ...

  2. WIN7如何查找网络打印机

    1 在开始菜单中输入"打印机"并点击"添加打印机" 2 点击下面一个,并搜索家庭组的打印机,一般可以搜到(注意这台电脑不能关机或睡眠). 3 查找并添加会需要安 ...

  3. php stripslashes和addslashes的区别

    我们在向mysql写入数据时,比如: mysql_query("update table set `title`='kuhanzhu's blog'"); 那就会出错.同asp时一 ...

  4. RTP 时间戳的处理

    RTP 时间戳的处理   在RTP传输音频数据时,一般选定逻辑时间戳速率与采样速率相同, 但是在传输视频数据时,必须使时间戳速率大于每帧的一个滴答(这样才能使图像回放更为平滑--<用TCP/IP ...

  5. 关于web项目中的图片上传、并在前端显示问题(tomcat中配置文件上传虚拟路径)

    一.数据库存储 直接把图片的二进制码存到数据库,可参考blog:http://blog.csdn.net/hope2jiang/article/details/590733 直接存图片在mysql上面 ...

  6. leetcode第一刷_Combination Sum Combination Sum II

    啊啊啊啊.好怀念这样的用递归保存路径然后打印出来的题目啊.好久没遇到了. 分了两种,一种是能够反复使用数组中数字的,一种是每一个数字仅仅能用一次的.事实上没有多大差别,第一种每次进入递归的时候都要从头 ...

  7. android实现超酷的腾讯视频首页和垂直水平网格瀑布流一揽子效果

    代码地址如下:http://www.demodashi.com/demo/13381.html 先来一波demo截图 实现ListView.GridView.瀑布流 1.导入RecyclerView的 ...

  8. 【OpenGL基础篇】——使用面向对象方法封装OpenGL函数(二)

    今天封装了一个Line类.负责在昨天写的窗体上绘制线条. OpenGL画图是通过给glBegin函数设置參数达成的,绘制线条有三个不同的參数: GL_LINES : 绘制连接两个点的线段(绘制的端点位 ...

  9. 织梦dedecms修改include和plus重命名提高安全性防漏洞注入挂马

    织梦dedecms是新手站长使用得比较多的一个建站开源程序,正因如此,也是被被入侵挂马比较多的程序.下面就来跟大家说一下怎么重新命名dedecms的include文件夹以及plus文件夹来提高网站的安 ...

  10. 学习-短信的上行(MO)和下行(MT)详解

    基础知识: SP服务提供商: 通常是指在移动网内运营增值业务的社会合作单位, 它们建立与移动网络建立相连的服务平台, 为手机用户提供一系列信息服务, 如:娱乐.游戏.短信.彩信.WAP.彩铃.铃声下载 ...