微信小程序 Page()函数详解

黄舟
发布: 2017-01-16 15:32:11
原创
3110人浏览过

微信小程序――page():

在开发微信小程序的时候遇到函数,或者不明白的地方,最好上官网查询,相应的知识,这里小编帮大家整理了下page()函数的用法。

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

object 参数说明:

属性       类型           描述

data    Object    页面的初始数据    

onLoad    Function    生命周期函数--监听页面加载    

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

onShow    Function    生命周期函数--监听页面显示    

onHide    Function    生命周期函数--监听页面隐藏    

onUnload    Function    生命周期函数--监听页面卸载    

onPullDownRefreash    Function    页面相关事件处理函数--监听用户下拉动作    

其他    Any    开发者可以添加任意的函数或数据到 object 参数中,用 this 可以访问    

示例代码:

//index.js   
Page({   
 data: {   
  text: "This is page data."   
 },   
 onLoad: function(options) {   
  // Do some initialize when page load.   
 },   
 onReady: function() {   
  // Do something when page ready.   
 },   
 onShow: function() {   
  // Do something when page show.   
 },   
 onHide: function() {   
  // Do something when page hide.   
 },   
 onUnload: function() {   
  // Do something when page close.   
 },   
 onPullDownRefresh: function() {   
  // Do something when pull down   
 },   
 // Event handler.   
 viewTap: function() {   
  this.setData({   
   text: 'Set some data for updating view.'   
  })   
 }   
})
登录后复制

初始化数据

初始化数据将作为页面的第一次渲染。data 将会以 JSON 的形式由逻辑层传至渲染层,所以其数据必须是可以转成 JSON 的格式:字符串,数字,布尔值,对象,数组。

渲染层可以通过 WXML 对数据进行绑定。

示例代码:

<view>{{text}}</view>   
<view>{{array[0].msg}}</view>
登录后复制
Page({   
 data: {   
  text: 'init data',   
  array: [{msg: '1'}, {msg: '2'}]   
 }   
})
登录后复制

生命周期函数

onLoad: 页面加载

一个页面只会调用一次。

参数可以获取wx.navigateTo和wx.redirectTo及中的 query。

onShow: 页面显示

每次打开页面都会调用一次。

onReady: 页面初次渲染完成

一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。

对界面的设置如wx.setNavigationBarTitle请在onReady之后设置。详见生命周期

onHide: 页面隐藏

当navigateTo或底部tab切换时调用。

onUnload: 页面卸载

当redirectTo或navigateBack的时候调用。

页面相关事件处理函数

onPullDownRefresh: 下拉刷新

监听用户下拉刷新事件。

需要在config的window选项中开启enablePullDownRefresh。

当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新。

事件处理函数

除了初始化数据和生命周期函数,Page 中还可以定义一些特殊的函数:事件处理函数。在渲染层可以在组件中加入事件绑定,当达到触发事件时,就会执行 Page 中定义的事件处理函数。

示例代码:

click me  

Page({   
 viewTap: function() {   
  console.log('view tap')   
 }   
})
登录后复制

Page.prototype.setData()

setData 函数用于将数据从逻辑层发送到视图层,同时改变对应的 this.data 的值。

注意:

直接修改 this.data 无效,无法改变页面的状态,还会造成数据不一致。

单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。

setData() 参数格式

接受一个对象,以 key,value 的形式表示将 this.data 中的 key 对应的值改变成 value。

其中 key 可以非常灵活,以数据路径的形式给出,如 array[2].message,a.b.c.d,并且不需要在 this.data 中预先定义。

示例代码:

iWebShop开源商城系统
iWebShop开源商城系统

iWebShop是一款基于PHP语言及MYSQL数据库开发的B2B2C多用户开源免费的商城系统,系统支持自营和多商家入驻、集成微信商城、手机商城、移动端APP商城、三级分销、视频电商直播、微信小程序等于一体,它可以承载大数据量且性能优良,还可以跨平台,界面美观功能丰富是电商建站首选源码。iWebShop开源商城系统 v5.14 更新日志:新增商品编辑页面规格图片上传优化商品详情页面规格图片与主图切

iWebShop开源商城系统 0
查看详情 iWebShop开源商城系统
<view>{{text}}</view>   
<button bindtap="changeText"> Change normal data </button>   
<view>{{array[0].text}}</view>   
<button bindtap="changeItemInArray"> Change Array data </button>   
<view>{{obj.text}}</view>   
<button bindtap="changeItemInObject"> Change Object data </button>   
<view>{{newField.text}}</view>   
<button bindtap="addNewField"> Add new data </button>
登录后复制
//index.js   
Page({   
 data: {   
  text: 'init data',   
  array: [{text: 'init data'}],   
  object: {   
   text: 'init data'   
  }   
 },   
 changeText: function() {   
  // this.data.text = 'changed data' // bad, it can not work   
  this.setData({   
   text: 'changed data'   
  })   
 },   
 changeItemInArray: function() {   
  // you can use this way to modify a danamic data path   
  this.setData({   
   'array[0].text':'changed data'   
  })   
 },   
 changeItemInObject: function(){   
  this.setData({   
   'object.text': 'changed data'   
  });   
 },   
 addNewField: function() {   
  this.setData({   
   'newField.text': 'new data'   
  })   
 }   
})
登录后复制

以下内容你不需要立马完全弄明白,不过以后它会有帮助。

生命周期

下图说明了 Page 实例的生命周期。

159.png

页面的路由


在小程序中所有页面的路由全部由框架进行管理,对于路由的触发方式以及页面生命周期函数如下:

路由方式

触发时机 路由后页面 路由前页面

触发时机                                    路由后页面                                 路由前页面

初始化    小程序打开的第一个页面                 onLoad,onShow    

打开新页面    调用 API wx.navigateTo 或使用组件    onLoad,onShow    onHide    

页面重定向    调用 API wx.redirectTo 或使用组件    onLoad,onShow    onUnload    

页面返回    调用 API wx.navigateBack或用户按左上角返回按钮    onShow    onUnload    

Tab切换    多 Tab 模式下用户切换 Tab    第一次打开 onLoad,onshow;否则 onShow    onHide

以上就是微信小程序 Page()函数详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关标签:
微信app下载
微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号