API 列表
命名空间 $w
微搭使用 $w
作为统一的作用域引用和命名空间,微搭前端运行时所有能力都可以通过这个命名空间访问到。典型的用法有:
组件实例访问:$w.<COMPONENT_ID> 如
$w.button1.text
平台方法/属性访问,如:
// 函数表达式
$w.ABS(1)
// 用户权限
$w.auth.currentUser
// 调用数据源等云能力
$w.cloud.callDataSource({ ... })
// 工具方法
$w.utils.showLoading()
// 访问当前页面或者应用实例
$w.app.id // 获取应用 id
$w.page.dataset.params.query1 // 获取当前页面参数循环作用域中数据和索引(item/index)的访问:
$w.index_<postfix>, $w.item_<postfix>
其中平台属性和方法有:
名称 | 类型 | 说明 |
---|---|---|
app | object | 当前应用实例 |
page | object | 当前页面实例 |
auth | object | 用户权限相关方法和属性 |
device | object | 当前设备信息 |
env | object | 当前环境信息 |
wedaContext | object | 当前上下文信息 |
cloud | object | 数据源等云端能力集合 |
utils | object | 平台工具方法集合 |
<函数表达式名> | function | 平台提供的函数方法集合 |
组件
使用组件 ID($w.<COMPONENT_ID>
)即可直接引用组件,如 $w.button1
, $w.form1
。通过组件引用可以获取组件的只读属性及调用方法,如 $w.listView1.refresh()
会刷新 id
为 listView1 的数据列表组件,通过 $w.button1.text
可以直接获取 button1 按钮的文本内容。
需要注意的是,如果某个组件是在一个循环 repeater
当中的话,在该 repeater
外则不能直接获取该组件引用,在同一 repeater
内的其他组件任然可以 $w.<COMPONENT_ID>
来引用兄弟组件或者 repeater
外的组件。
通用属性/方法
微搭中组件会具备一些属性和方法,以下属性和方法是所有组件都具备的:
名称 | 类型 | 说明 |
---|---|---|
id | string | 组件 ID,微搭中一般由编辑器生成 |
component | string | 组件名,如 WdButton |
module | string | 组件库名,微搭默认组件库名为 gsd-h5-react |
parent | Component | 父组件引用 |
children | Component[] | 子组件集合 |
更多组件文档请参考具体的组件文档。
微搭应用中不要单独使用变量保存某个组件的引用类型属性(对象、方法等)然后直接使用该变量 ,如不要使用:
// Bad
const mySetValue = input1.setValue;
mySetValue('xxx');
因为微搭中同一个组件属性和方法在不同的时候不总是同一个引用,如表单类组件的 setValue 方法,具体某个属性是否会变化依赖该组件的实现,其原因和微搭在 web 默认的 react 实现方式有关
循环展示组件
循环展示组件 repeater
在微搭中是一个较特殊的组件,其内部组件在运行时的实例数量会被创建多份,在使用时会具备一些类似作用域的作用。所以在循环展示组件内的组件,可通过 $w.<api>
来访问当前项的数据,索引,或同项的组件实例。具体信息如下
名称 | 类型 | 说明 |
---|---|---|
item_<postfix> | any | 当前循环项的数据。数据类型取决于你的循环数据,如 [{name: 'Sarah'}],即为对象 |
index_<postfix> | number | 当前循环项的索引 |
<COMPONENT_ID> | string | 通过组件 ID 访问同项的组件实例 |
更多关于如何使用循环展示组件的文档,请参考 循环展示组件使用帮助文档
应用实例
微搭前端应用实例,通过 $w.app
访问,也可以使用 $app
做快捷引用。
$w.app
名称 | 类型 | 说明 |
---|---|---|
id | string | 应用 id |
label | string | 应用名称 |
version | string | 应用版本 |
mpAppId | string | 小程序 appid |
mpAppName | string | 小程序名称 |
dataset | AppDataset | 全局数据对象象 |
common | object | 全局 common 方法 |
setState | function | 设置全局变量 |
页面实例
当前页面实例,通过 $w.page
访问,可以使用 $page
做快捷引用。
$w.page
名称 | 类型 | 说明 |
---|---|---|
id | string | 当前页面的 id |
label | string | 当前页面的名称 |
path | string | 当前页面的路径 |
dataset | PageDataset | 页面数据对象 |
handler | object | 页面定义 handler 方法 |
setState | function | 设置页面变量 |
设备信息
当前设备信息,通过 $w.device
访问。
$w.device
名称 | 类型 | 说明 |
---|---|---|
viewport | object | 窗口信息 |
networkType | string | 移动端网络类型 |
环境信息
当前环境信息,通过 $w.env
访问。
$w.env
名称 | 类型 | 说明 |
---|---|---|
type | string | 环境类型 |
id | string | 环境 id |
上下文信息
当前上下文信息,通过 $w.wedaContext
访问。
$w.wedaContext
名称 | 类型 | 说明 |
---|---|---|
isEditorMode | boolean | 是否在编辑区 |
platforms | array | 应用运行终端 ['WEB', 'MOBILEWEB', 'PCWEB', 'MP'] |
平台方法
微搭提供了一系列的内置前端方法可以在前端中调用。
用户/权限
名称 | 说明 |
---|---|
$w.auth.getUserInfo | 获取用户信息 |
$w.auth.currentUser | 用户信息引用 |
数据源
名称 | 说明 |
---|---|
$w.cloud.callDataSource | 调用数据源 |
流程
名称 | 说明 |
---|---|
$w.cloud.callWorkflow | 调用流程 |
其他云端能力
名称 | 说明 |
---|---|
$w.cloud.getTempFileURL | 通过 cloudid 获取静态文件的 http 访问地址 |
$w.cloud.getCloudInstance | 返回云开发web-sdk初始化后的实例(无需关心tcb环境信息及认证登录的处理), 即 tcb.init 后返回的对象, 可用该对象直接调用tcb的各种能力 |
$w.cloud.callFunction | 调用云开发的云函数, 与 $w.cloud.getCloudInstance 示例中的效果大体一致 |
通用工具/交互方法
名称 | 说明 |
---|---|
$w.utils.showToast | 显示提示框 |
$w.utils.showLoading | 显示全局加载中提示 |
$w.utils.hideLoading | 隐藏全局加载中提示 |
$w.utils.showModal | 显示模态弹框 |
$w.utils.callPhone | 拨打电话 |
$w.utils.scanCode | 扫描二维码 |
$w.utils.navigateTo | 跳转到应用某个页面 |
$w.utils.redirectTo | 关闭当前页面,跳转到应用内的某个页面 |
$w.utils.reLaunch | 关闭所有页面,打开到应用内的某个页面 |
$w.utils.relaunchHome | 返回首页 |
$w.utils.navigateBack | 关闭当前页面,返回上一页面或多级页面 |
$w.utils.requestSubscribeMessage | 调起客户端小程序订阅消息界面,返回用户订阅消息的操作结果 |
$w.utils.openLocation | 使用微信内置地图查看位置 |
$w.utils.reserveChannelsLive | 预约视频号直播 |
$w.utils.openchannelsUserProfile | 打开视频号主页 |
$w.utils.openChannelsLive | 打开视频号直播 |
$w.utils.openChannelsEvent | 打开视频号活动页 |
$w.utils.openChannelsActivity | 打开视频号视频 |
$w.utils.getChannelsLiveNoticeInfo | 获取视频号直播预告信息 |
$w.utils.getChannelsLiveInfo | 获取视频号直播信息 |
函数表达式
函数表达式是一组静态的逻辑工具方法,主要用来处理转换应用中各种数据。在组件属性绑定表达式区域可以省掉 $w
前缀。
名称 | 说明 |
---|---|
$w.ABS | 计算传入数字的绝对值 |
$w.Min | 返回一组数字中的最小值 |
$w.Max | 返回一组数字中的最大值 |
$w.Average | 返回一组数字中的平均值 |
$w.Sum | 计算一组数字的和 |
$w.Floor | 返回传入数字向下取整的结果 |
$w.Ceiling | 返回传入数字向上取整的结果 |
$w.Round | 返回传入数字四舍五入后的结果 |
$w.Rand | 返回一个指定范围的伪随机整数 |
$w.If | 按判断条件进行逻辑比较,满足时返回一个值,不满足时返回另一个值 |
$w.IsEmpty | 判断输入值是否为空,如果结果为数组类型,还会判断结果数组项是否全为空 |
$w.NotNull | 判断传入的字段值是否为 null |
$w.And | 用于确定所有判断条件是否为真 |
$w.Or | 任意一个判断条件为真,则结果为真;所有条件为否,结果才为否 |
$w.DateText | 格式化日期时间为指定格式的文本 |
$w.DateTimeValue | 将日期时间文本根据指定格式转化为日期时间 |
$w.Now | 返回当前系统时间,通常与其他日期时间函数搭配使用 |
$w.GetDate | 根据输入的年月日数值返回一个日期类型的数据 |
$w.Timestamp | 根据输入的日期时间返回时间戳 |
$w.Second | 根据输入的日期时间返回该时间的秒数 |
$w.Minute | 根据输入的日期时间返回该时间的分钟部分 |
$w.Hour | 根据输入的日期时间返回该时间的小时部分,24 小时制 |
$w.Day | 根据输入的日期时间返回该时间的日部分,范围为 1-31 |
$w.DayOfWeek | 根据输入的日期时间返回该时间的星期数 |
$w.Month | 根据输入的日期时间返回该时间的月份 |
$w.Year | 根据输入的日期时间返回该时间的年份 |
$w.Age | 根据输入的两个日期时间计算出年龄 |
$w.AgeOfNow | 计算当前年龄 |
$w.DateAdd | 在传入的日期时间上增加 X 天,支持负数 |
$w.MonthAdd | 在传入的日期和时间上增加 X 月,支持负数 |
$w.YearAdd | 在传入的日期和时间上增加 X 年,支持负数 |
$w.YearDiff | 返回两个日期时间字段之间的年数差,如果为同一年,差数为零 |
$w.MonthDiff | 返回两个日期时间字段之间的月数差,如果为同一月,差数为零 |
$w.DateDiff | 返回两个日期时间字段之间的天数差,如果为同一天,差数为零 |
$w.HourDiff | 返回两个日期时间字段之间的小时差,如果为同一小时,差数为零 |
$w.MinuteDiff | 返回两个日期时间字段之间的分钟差,如果为同一分钟,差数为零 |
$w.SecondDiff | 返回两个日期时间字段之间的秒数差,如果为同一秒,差数为零 |
$w.IsToday | 判断传入的日期时间是否为今天 |
$w.Len | 获取传入文本的字符数 |
$w.Contains | 判断文本 1 是否包含文本 2 |
$w.Split | 根据传入的文本 2,将文本 1 拆分成文本数组 |
$w.Trim | 删除文本开头和结尾的所有空格和制表符,文本中间的空格和制表符不会删除 |
$w.Upper | 将传入的文本转为全大写文本 |
$w.Lower | 将传入的文本转为全小写文本 |
$w.Concat | 返回多个文本拼接后的新文本 |