使用
创建 SDM
以下目录包含了本章节所需要涉及到的所有文件,也可以直接基于 public-sdm 示例项目进行开发
src
devices
- index.ts
- schema.ts
pages
home
- index.tsx
- app.tsx
typings
- sdm.d.ts
生成智能设备模型
该示例文件位于 devices/index.ts,用于生成智能设备模型以供后续业务项目中使用
定义智能设备描述文件
该示例文件位于 src/devices/schema.ts,用于定义智能设备的 DP 功能点描述,以便后续业务中可以根据 TS 的类型约束,围绕当前智能设备的功能定义进行开发
可通过 Tuya MiniApp IDE 中设备工具里的智能设备模型 Tab 来注入到项目中,详见下图
请注意给 schema 加上 as const 断言以便能够正常进行类型推导
全局声明智能设备类型
该示例文件位于 typings/sdm.d.ts,用于全局声明 SDM 相关的类型定义,方便开发者在项目中能一键获得智能设备相关配套 Hooks 的 TS 类型提示,非 TypeScript 开发者可忽略该类型定义文件
请注意该步骤必须在上一步智能设备描述文件定义完成后进行,否则会导致 TS 类型推导失败
使用 SDM
根组件使用 SdmProvider
该示例文件位于 src/app.tsx,在根组件中使用了 SdmProvider,会等待传入的设备初始化完毕以后再进行渲染子组件,以便后续在任意页面组件中能使用 SDM 的配套 Hooks
通过 SDM 控制设备
该示例文件位于 src/pages/home/index.tsx,通过配套的 useActions hooks 来控制智能设备的开关并实时获取开关的值
多设备场景
若需在同一小程序内管理多台设备,请使用 多设备管理 能力:通过 SdmProvider 的 deviceManager 注入 SmartDevicesManager,并使用多设备 Hooks(useDevices、useDevicesProps、useDevicesActions 等)。详见 多设备管理 - 使用 与 多设备管理 - Hooks。