### [微信小程序 Page()函数的介绍](https://www.prosaas.cn/article/17469) **Published:** 2018-06-22T08:16:16 **Author:** 5201314 **Excerpt:** 这篇文章主要介绍了微信小程序 Page()函数详解的相关资料,在开发过程中肯定会遇到Page()函数,希望能帮… 这篇文章主要介绍了微信小程序 Page()函数详解的相关资料,在开发过程中肯定会遇到Page()函数,希望能帮助到大家,需要的朋友可以参考下 **微信小程序——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 对数据进行绑定。 示例代码: {{text}} {{array\[0\].msg}} 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 中预先定义。 示例代码: {{text}} {{array\[0\].text}} {{obj.text}} {{newField.text}} //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 实例的生命周期。 ![](https://img.php.cn/upload/article/000/000/009/d45b45d267abd0c3ec2fc805e133f557-0.png) **页面的路由 ** 在小程序中所有页面的路由全部由框架进行管理,对于路由的触发方式以及页面生命周期函数如下: 路由方式   触发时机 路由后页面 路由前页面 | 触发时机 | 路由后页面 | 路由前页面 | | | --- | --- | --- | --- | | 初始化 | 小程序打开的第一个页面 | onLoad,onShow | | | 打开新页面 | 调用 API wx.navigateTo 或使用组件57a737e6177310cdb6fcd032ddad3df4 | onLoad,onShow | onHide | | 页面重定向 | 调用 API wx.redirectTo 或使用组件57a737e6177310cdb6fcd032ddad3df4 | onLoad,onShow | onUnload | | 页面返回 | 调用 API wx.navigateBack或用户按左上角返回按钮 | onShow | onUnload | | Tab切换 | 多 Tab 模式下用户切换 Tab | 第一次打开 onLoad,onshow;否则 onShow | onHide | 以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网! 相关推荐: 微信小程序中wx:for和wx:for-item的用法 微信小程序-getUserInfo回调的介绍 以上就是微信小程序 Page()函数的介绍的详细内容,更多请关注知企PROSAAS其它相关文章! **Tags:** Array, for, json, Object, php, prototype, this, 事件, 字符串, 对象 **Categories:** 后端开发 ---