FunctionPage是Page写法的wrapper,实例化时会调用该函数式声明,用法同Page。
写法示例
import { JSON, JSONObject } from "waft-json";import { console, getDataSource, FunctionPage, Props, Event, MessageEvent } from "waft";// 支持function写法let _page: FunctionPage;let percent: i32 = 42;export function Index(page: FunctionPage): void{_page = page;// 设置默认的statepage.setState(JSON.stringify(getDataSource()));// 添加监听事件page.addEventListener("plus", (event: Event)=>{_page.setState(`{"percent": "${(percent++).toString()}%"}`);});page.addEventListener("minus", (event: Event)=>{_page.setState(`{"percent": "${(percent--).toString()}%"}`);});page.onshow = (): void =>{// 页面显示console.log('page onShow');}page.onload = (query: JSONObject): void=>{// 页面加载后console.log('page onLoad:' + JSON.stringify(query));}page.onmessage = (event: MessageEvent): void=>{// 信息推送更新console.log('page onMessage:' + JSON.stringify(event.data));// 如果需要进行更新界面if(event.data.has("dataSource")){_page.setState(event.data.getObject("dataSource").toString());}}}
事件响应
响应xml中的事件
xml:
<div class="button" onTap="buttonClick">getSystemInfoSync</div>
.ts
component.addEventListener('buttonClick', function (event: string) {const result = system.getSystemInfoSync();log('--> getSystemInfo result:' + result)});
