页面实例
当前页面实例,通过 $w.page
访问,可以使用 $page
做快捷引用。
属性
id: string
当前页面的 id
label: string
当前页面的名称
path: string
当前页面的路径,假设当前为主包中 id 为home
的页面:
- 在 web 应用中访问值为
/home
- 在小程序中中访问值为
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
的值,会根据传入 object
的 key
作为路径,按 key
顺序将$w.page.dataset.state
中对应路径的值设置为 object
的 value
。没有的属性将会创建,不会对其他属性做修改。
入参
名称 | 类型 | 说明 |
---|---|---|
data | object | 以路径作为 key,新值作为 value 的 object |
Object 以 key: value 的形式表示,将 $w.page.dataset.state 中的 key 对应的值改变成 value。
其中 key 可以以数据路径的形式给出,支持改变数组中的某一项或对象的某个属性,例如 array.2.message
,a.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
的值,会根据传入 object
的 key
作为路径,按 key
顺序将$w.page.dataset.state
中对应路径的值设置为 object
的 value
。没有的属性将会创建,不会对其他属性做修改。
同时在 web 场景下,会对当前 url 地址进行同步修改,并替换当前路由(相当于触发了 $w.utils.redirectTo({pageId:"currentPageId", params})
,利用该能力,可以将参数持久化于 url 上,当页面跳转或回退时可以根据 url 参数保持状态。
入参
名称 | 类型 | 说明 |
---|---|---|
params | object | 以路径作为 key,新值作为 value 的 object |
Object 以 key: value 的形式表示,将 $w.page.dataset.params 中的 key 对应的值改变成 value。
其中 key 可以以数据路径的形式给出,支持改变数组中的某一项或对象的某个属性,例如 array.2.message
,a.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
名称 | 类型 | 说明 |
---|---|---|
state | object | 页面变量,通过 $w.page.dataset.state.xxx 进行访问和赋值 |
params | object | 页面 Url 参数,通过 $w.page.dataset.params.xxx 进行只读访问 |