# Progress 组件 API 文档 本文档由 `DeepSeek R1` 模型生成并微调。 --- ## 核心特性 - **动态进度显示**:支持 0.0~1.0 范围的进度可视化 - **双色样式分离**:可分别定制已完成/未完成部分样式 - **精准定位**:支持像素级坐标控制 - **平滑过渡**:数值变化自动触发重绘 --- ## Props 属性说明 | 属性名 | 类型 | 默认值 | 描述 | | ------------ | ---------------- | -------- | --------------------- | | `loc` | `ElementLocator` | **必填** | 进度条容器坐标 | | `progress` | `number` | **必填** | 当前进度值(0.0~1.0) | | `success` | `CanvasStyle` | `green` | 已完成部分填充样式 | | `background` | `CanvasStyle` | `gray` | 未完成部分填充样式 | | `lineWidth` | `number` | `2` | 进度条线宽(像素) | --- ## 使用示例 ### 基础用法 ```tsx import { defineComponent, ref } from 'vue'; import { Progress } from '@user/client-modules'; import { onTick } from '@motajs/render'; export const MyCom = defineComponent(() => { // 创建响应式进度值 const loadingProgress = ref(0); // 模拟进度更新 onTick(() => { if (loadingProgress.value < 1) { loadingProgress.value += 0.002; } }); return () => ( ); }); ``` ### 自定义样式 ```tsx // 自定义进度条的已完成和未完成部分的样式 ``` ### 垂直进度条 ```tsx // 通过旋转容器实现垂直效果,注意锚点的使用 ``` --- ## 动画效果实现 ### 平滑过渡示例 ```tsx import { transitioned } from '@user/client-modules'; import { pow } from 'mutate-animate'; const progressValue = transitioned(0, 2000, pow(2, 'out')); progressValue.set(1); // 2秒内完成二次曲线平滑过渡 return () => ( ); ``` --- ## 注意事项 1. **坐标系统** 实际渲染高度由 `loc[3]` 参数控制,会自动上下居中: ```tsx // 情况1:显式指定高度为8px ```