代码创建

2026-05-12   访问量:1002


代码创建是指通过编写代码从零构建 Widget 的方式,适用于对展示结构、交互逻辑和样式效果有较高定制需求的场景。

该方式具备更高的灵活性与可控性,适合具备一定前端或 Widget 开发经验的用户使用。

适用场景

平台提供的 Widget 模板无法满足使用需求。

需要实现复杂或高度定制化的展示与交互效果。

使用者具备一定的代码开发能力,能够自行完成 Widget 创建。

操作步骤

您可以参考以下生成天气预报 Widget 的步骤进行创建:

1. 新建 Widget

在 Widget 开发页面单击新建 Widget,选择代码创建







2. 填写基础信息

输入 Widget 名称:天气预报,新建标签:天气、结果展示,单击确定,进入卡片预览界面。







3. 编辑代码

单击编辑,分别在Template、Schema、Default 界面编辑代码,生成 Widget ,单击确定,完成 Widget 的编辑。

Template 模块:定义天气预报 Widget 中组件的布局结构,主要使用了 Card 卡片、Title 标题、Icon 图标等组件,具体编辑方法可参见 Widget 组件

<Card size="sm">  {/* 创建小尺寸卡片容器,作为Widget的主体框架 */}    <Col gap={2}>  {/* 垂直布局容器,子元素间距为2个单位 */}      {/* 标题区域 */}      <Title value="明天天气" size="md" />  {/* 显示Widget标题,中等字号 */}            {/* 位置和天气状态行 */}      <Row gap={2}>  {/* 水平布局容器,子元素间距为2个单位 */}        <Icon name="map-pin" size="sm" color="secondary" />  {/* 位置图标,小尺寸,次要颜色 */}        <Text value={city} size="sm" color="secondary" />  {/* 城市名称,绑定city变量 */}        <Spacer />  {/* 弹性空白区域,将后续元素推到右侧 */}        <Badge label={condition} color="info" />  {/* 天气状况标签,绑定condition变量 */}      </Row>            {/* 温度信息行 */}      <Row gap={2}>  {/* 水平布局容器,子元素间距为2个单位 */}        <Text value={`温度 ${temp}°C`} size="sm" />  {/* 当前温度,使用模板字符串绑定temp变量 */}        <Spacer />  {/* 弹性空白区域,将后续元素推到右侧 */}        <Caption value={`最高 ${high}°C • 最低 ${low}°C`} />  {/* 最高最低温度,小号文本 */}      </Row>    </Col>        <Divider />  {/* 分割线,分隔不同内容区域 */}        {/* 穿衣建议区域 */}    <Col gap={1}>  {/* 垂直布局容器,较小间距 */}      <Caption value="穿衣建议" />  {/* 区域标题 */}      <Text value={advice} size="sm" color="secondary" />  {/* 穿衣建议内容,绑定advice变量 */}    </Col></Card>

JSON Schema 模块:配置数据格式和变量类型。

{  "$schema": "https://json-schema.org/draft/2020-12/schema",  // 指定JSON Schema版本规范  "type": "object",  // 根数据类型为对象  "properties": {  // 定义对象的属性结构    "city": {      "type": "string"  // 城市名称,字符串类型    },    "condition": {      "type": "string"  // 天气状况,字符串类型(如:晴天、多云、雨天等)    },    "temp": {      "type": "string"  // 当前温度,字符串类型(包含单位,如:25°C)    },    "high": {      "type": "string"  // 最高温度,字符串类型(包含单位)    },    "low": {      "type": "string"  // 最低温度,字符串类型(包含单位)    },    "advice": {      "type": "string"  // 穿衣建议,字符串类型(根据温度给出的建议文本)    }  },  "required": [  // 必填字段列表,所有字段都是必需的    "city",      // 城市名称必填    "condition", // 天气状况必填    "temp",      // 当前温度必填    "high",      // 最高温度必填    "low",       // 最低温度必填    "advice"     // 穿衣建议必填  ],  "additionalProperties": false  // 禁止添加未定义的额外属性,确保数据结构严格}

Default 模块:填充变量数据作为示例。

{  city: '深圳',  condition: '阴',  temp: '14',  high: '18',  low: '10',  advice: '建议穿着毛衣或厚外套,外出时携带雨具,关注气温变化。',}

Widget 效果预览如下:










热门文章
更多>