百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

微信小程序学习笔记:Page()(微信小程序page中的data)

zhezhongyun 2025-05-02 22:37 54 浏览

Page()用来注册小程序中的一个页面,接受一个Object类型参数,其指定页面的初始数据、生命周期回调、事件处理函数等。Page方法的object参数主要构成如下:

属性

说明

data

data是页面渲染使用的初始数据。页面加载时data将会以JSON字符串的形式由逻辑层传至渲染层,因此data中的数据必须是可以转成JSON的类型:字符串,数字,布尔值,对象,数组。渲染层通过WXML对数据进行绑定。

options

页面的组件选项,同Component 构造器中的options。

behaviors

类似于mixins和traits的组件间代码复用机制,参见behaviors。

onLoad(Object)

页面加载时触发。一个页面只会调用一次,可以在onLoad的参数中获取打开当前页面路径中的参数。

onShow

页面显示/切入前台时触发。

onReady

页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。对界面内容进行设置的API如wx.setNavigationBarTitle,请在onReady之后进行。

onHide

页面隐藏/切入后台时触发。如wx.navigateTo或底部tab切换到其他页面,小程序切入后台等。

onUnload

页面卸载时触发。如wx.redirectTo或wx.navigateBack到其他页面时。

onPullDownRefresh

监听用户下拉刷新事件。需要在app.jsonwindow选项中或页面配置中开启enablePullDownRefresh。可以通过wx.startPullDownRefresh触发下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新。

onReachBottom

监听用户上拉触底事件。可以在app.jsonwindow选项中或页面配置中设置触发距离onReachBottomDistance。在触发距离内滑动期间,本事件只会被触发一次。

onShareAppMessage(Object)

监听用户点击页面内转发按钮(button组件open-type="share")或右上角菜单“转发”按钮的行为,并自定义转发内容。注意:只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮,参数from(String):转发事件来源(button:页面内转发按钮,menu:右上角转发菜单),target(Object):如果from值是button,则 target 是触发这次转发事件的button,否则为undefined,webViewUrl(String):页面中包含web-view组件时,返回当前web-view的url,此事件处理函数需要return一个Object,用于自定义转发内容,title:转发标题,path:转发路径(必须是以 / 开头的完整路径),imageUrl:自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径。支持PNG及JPG。显示图片长宽比是 5:4。promise:如果该参数存在,则以 resolve 结果为准,如果三秒内不 resolve,分享会使用上面传入的默认参数。

onShareTimeline

监听右上角菜单“分享到朋友圈”按钮的行为,并自定义分享内容。只有定义了此事件处理函数,右上角菜单才会显示“分享到朋友圈”按钮,事件处理函数返回一个Object,用于自定义分享内容,不支持自定义页面路径,title:自定义标题,即朋友圈列表页上显示的标题,query:自定义页面路径中携带的参数,如path?a=1&b=2的“?”后面部分,imageUrl:自定义图片路径,可以是本地文件或者网络图片。支持 PNG 及 JPG,显示图片长宽比是 1:1。

onAddToFavorites(Object)

监听用户点击右上角菜单“收藏”按钮的行为,并自定义收藏内容。参数webViewUrl(String)页面中包含web-view组件时,返回当前web-view的url。此事件处理函数需要 return 一个 Object,用于自定义收藏内容,title:自定义标题,imageUrl:自定义图片,显示图片长宽比为1:1,query:自定义query字段。

onPageScroll(Object)

监听用户滑动页面事件。参数scrollTop(Number):页面在垂直方向已滚动的距离(单位px)。

onResize(Object)

小程序屏幕旋转时触发,显示区域指小程序界面中可以自由布局展示的区域,默认情况下小程序显示区域的尺寸自页面初始化起就不会发生变化。但有两种方式可以改变:在手机上启用屏幕旋转支持(在app.jsonwindow段中设置"pageOrientation":"auto",或在页面json文件中配置"pageOrientation":"auto",pageOrientation还可以被设置为 landscape,表示固定为横屏显示)、在iPad上启用屏幕旋转支持(在app.json中添加"resizable":true,在iPad上不能单独配置某个页面是否支持屏幕旋转)。有时对于不同尺寸的显示区域,页面的布局会有所差异。此时可以使用media query来解决大多数问题。在 WXML 中,可以使用 match-media 组件来根据 media query 匹配状态展示、隐藏节点。此外,可以在页面或者自定义组件 JS 中使用
this.createMediaQueryObserver()
方法来创建一个 MediaQueryObserver 对象,用于监听指定的 media query 的匹配状态。有时仅仅使用media query无法控制一些精细的布局变化。此时可以使用js作为辅助。在js中读取页面的显示区域尺寸,可以使用
selectorQuery.selectViewport 。页面尺寸发生改变的事件,可以使用页面的
onResize来监听。对于自定义组件,可以使用resize生命周期来监听。回调函数中将返回显示区域的尺寸信息。此外还可以使用 wx.onWindowResize 来监听(但这不是推荐的方式)。

onTabItemTap(Object)

点击 tab 时触发,参数index(String):被点击tabItem的序号,从0开始,pagePath(String):被点击tabItem的页面路径,text(String):被点击tabItem的按钮文字。

onSaveExitState

每当小程序可能被销毁之前,页面回调函数onSaveExitState会被调用,可以进行退出状态的保存。

其他

可以添加任意的函数或数据到Object参数中,在页面的函数中用this可以访问。这部分属性会在页面实例创建时进行一次深拷贝。

相关推荐

Excel高效技巧:批量合并重复数据的实用指南

在日常数据处理中,我们常会遇到需要合并相邻重复单元格的场景。无论是整理分类标签、统计重复项还是优化报表格式,手动逐个合并不仅耗时且容易出错。本文将详细介绍三种专业高效的批量合并方法,助您轻松应对各种复...

自主研发高速动车组列车又添新成员(新时代画卷)

数据来源:国铁集团">数据来源:国铁集团CR400AF—S型列车驶过重庆。龙帆摄(人民视觉)">CR400AF—S型列车驶过重庆。龙帆摄(人民视觉)CR400BF—GZ型列车行驶在京...

福彩双色球幻圆图的VBA程序(第一部分)

很多朋友喜欢玩福彩双色球彩票,都知道下面的这张图——福彩双色球红球幻圆图和篮球幻方图。图2是福彩双色球2024104期(红色)和2024105期(黄色)的幻圆图。图3是福彩双色球2024105期(红色...

技巧 | 往MCP服务器添加提示词模板

在我的上一篇文章[1]中,我已经构建了一个本地MCP服务器并向其添加了一些工具。在本文中,我们将向该MCP服务器添加提示词。这是如同上一篇博客的文件结构。但在这里,我为此创建了两个新文件。.├──...

Avalonia日志组件实现与优化指南

背景Avalonia目前没有富文本框可实现日志输出显示,但提供了SelectableTextBlock控件可以替换,这是站长实现的一个日志组件效果:可展示日志时间、日志级别、日志详细内容等,后台除输...

vim编辑器最后几行@代表什么意思

使用vim编辑文本时,屏幕下方会出现一些@符号,这些符号代表什么意思?当vim设置了wrap属性时,若一行太长则就会发生折行现象,此时一个逻辑行就会显示多个屏幕行,如下图由于文件的第2行太长,一个真实...

浅色AI云食堂APP完整代码(二)

以下是整合后的浅色AI云食堂APP完整代码,包含后端核心功能、前端界面以及优化增强功能。项目采用Django框架开发,支持库存管理、订单处理、财务管理等核心功能,并包含库存预警、数据导出、权限管理等增...

QML控件:TextInput, TextField, TextEdit, TextArea用法及自定义

本文主要介绍基本元素TextInput,TextField,TextEdit,TextArea等的基本属性。Textlnput与TextField为行编辑控件,TextEdit与T...

WPF - 10.特殊容器控件

摘要这里我们要介绍的特殊容器空间是ScrollViewer,该控件与其他控件不同的是,可以支持滚动显示容器内的元素。下面我们举例说明如何在WPF中使用ScrollViewer控件。新建一个WPF程...

rhino6.0 python中ETO的组件案例

1.按钮组件按钮几乎放置在每个对话框上。创建一个新的按钮很简单。使用forms.Button并指定Text显示在按钮面上。除了创建新按钮外,通常还通过.Click事件附加一个操作。使用+=语法,如下...

Rhino6.0 窗口开发使用角本说明

第1个:生成窗口代码第2点:Eto界面主要由Dialog(主程序界面)、Layout(界面布局)和Controls(控件)三个部分构成,逻辑简单且清晰。这个脚本被分为三个主要部分。该import...

手把手教你搭建属于自己的服务器!

最近总是想搭建自己的网站,奈何皮夹里空空如也,服务器也租不起,更别说域名了。于是我就寻思能否自己搭建个服务器,还不要钱呢?还真行!!!经过几天的冲浪,我发现有两个免费的建站工具:Apache和Ng...

HEAT杂志《欧美猛男》排行!“雷神”居然没进前三!

提到猛男的必备条件,应该就是要有着让人看了会流口水的大块肌肉,而一说到猛男,小编第一个想到的就是spanstyle="text-transform:none;background-color:...

Power Query 表格列历遍函数Table.TransformColumns函数

PowerQuery提取数字应该是非常方便的,EH有这样一道题:一看到这题首先想的是PowerQuery,可能中毒有点深,思路挺简单的,PowerQuery有一个从数字到非数字的分列分列后再提取...

自学前端踩了30个坑,终于整理出这份新手避坑指南

这是我在自学前端的第37天,对着一个简单的HTML页面卡了整整一下午。不是逻辑错误,不是语法问题,只是我不知道为什么,一个div死活居中不了。那时候的我,以为前端就是写写页面、调调样式,直到后来才...