跳到主要内容

页面实例

当前页面实例,通过 $w.page 访问,可以使用 $page 做快捷引用。

属性

id: string

当前页面的 id

label: string

当前页面的名称

path: string

当前页面的路径,假设当前为主包中 id 为home的页面:

  1. 在 web 应用中访问值为 /home
  2. 在小程序中中访问值为 pages/miniapp/index

dataset: pagedataset

页面数据对象

handler: Object

页面定义低代码 handler 方法,通过 $w.page.handler.<handler 名称> 进行访问。

方法

$w.page.setState

$w.page.setState(data: object): void

功能描述

设置 $w.page.dataset.state 的值,会根据传入 objectkey 作为路径,按 key 顺序将$w.page.dataset.state 中对应路径的值设置为 objectvalue 。没有的属性将会创建,不会对其他属性做修改。

入参

名称类型说明
dataobject以路径作为 key,新值作为 value 的 object

Object 以 key: value 的形式表示,将 $w.page.dataset.state 中的 key 对应的值改变成 value。

其中 key 可以以数据路径的形式给出,支持改变数组中的某一项或对象的某个属性,例如 array.2.messagea.b.c.d

示例

console.log($w.page.dataset.state.data);
// undefined
$w.page.setState({"data.inner": {test: 'data'}})
console.log($w.page.dataset.state.data);
/**
* {
* inner: {
* test: "data"
* }
* }
* /

$w.page.setParams

$w.page.setState(params: object): void

功能描述

设置 $w.page.dataset.params 的值,会根据传入 objectkey 作为路径,按 key 顺序将$w.page.dataset.state 中对应路径的值设置为 objectvalue 。没有的属性将会创建,不会对其他属性做修改。

同时在 web 场景下,会对当前 url 地址进行同步修改,并替换当前路由(相当于触发了 $w.utils.redirectTo({pageId:"currentPageId", params}),利用该能力,可以将参数持久化于 url 上,当页面跳转或回退时可以根据 url 参数保持状态。

入参

名称类型说明
paramsobject以路径作为 key,新值作为 value 的 object

Object 以 key: value 的形式表示,将 $w.page.dataset.params 中的 key 对应的值改变成 value。

其中 key 可以以数据路径的形式给出,支持改变数组中的某一项或对象的某个属性,例如 array.2.messagea.b.c.d

示例

console.log($w.page.dataset.state.params);
// undefined
$w.page.setState({"data.inner": {test: 'data'}})
console.log($w.page.dataset.params.data);
/**
* {
* inner: {
* test: "data"
* }
* }
* /

PageDataset

名称类型说明
stateobject页面变量,通过 $w.page.dataset.state.xxx 进行访问和赋值
paramsobject页面 Url 参数,通过 $w.page.dataset.params.xxx 进行只读访问