页面实例
当前页面实例,通过 $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 进行只读访问 |