Skip to content

ChartSparkline 迷你趋势线

用于卡片、列表行、指标摘要中的轻量趋势展示。相比完整折线图,Sparkline 去掉坐标轴和复杂标尺,只保留走势、面积渐变、末端点和触摸高亮。

基础用法

vue
<template>
  <lk-chart-sparkline :data="revenue" :height="160" />
</template>

<script setup lang="ts">
const revenue = [
  { label: '1', value: 28 },
  { label: '2', value: 34 },
  { label: '3', value: 32 },
  { label: '4', value: 45 },
  { label: '5', value: 52 },
  { label: '6', value: 49 },
  { label: '7', value: 64 },
  { label: '8', value: 71 },
];
</script>

紧凑模式

vue
<lk-chart-sparkline
  :data="trend"
  :height="96"
  :padding="8"
  :line-width="4"
  :area="false"
  :show-end-point="false"
/>

自定义颜色

color 控制折线、面积渐变、端点和触摸高亮。组件不会把外部标题、数值等文本自动改成该颜色。

vue
<lk-chart-sparkline
  :data="trend"
  color="#0f766e"
  :line-width="6"
/>

直接 Demo

项目内置可运行示例位于 src/components/demos/chart-sparkline-demo.vue,文档预览、preview catalog 与 showcase 都使用这个独立 Demo,不再借用 chart-lite 聚合页。

数据格式

ts
interface LiteChartPoint {
  label?: string;
  value: number;
}

Props

参数说明类型默认值
data趋势数据LiteChartPoint[][]
height容器高度,数字按 rpx 处理number / string120
padding内边距,单位 rpxnumber12
lineWidth线宽,单位 rpxnumber5
color图表主色,控制折线、面积、端点和触摸高亮stringprimary
area是否显示面积渐变booleantrue
showEndPoint是否显示末端高亮点booleantrue
tooltip是否启用触摸高亮booleantrue
animationDuration入场动画时长,单位 msnumber560
animationRepeat入场动画重复次数,0 表示持续循环number1
effect图表特效等级none / subtle / premiumpremium
effectDuration图表特效周期,单位 msnumber2400

Events

事件名说明回调参数
hoverChange触摸高亮点变化,无高亮时为 -1(index: number)

使用建议

  • 卡片指标内嵌趋势优先用 ChartSparkline
  • 如果需要坐标轴、网格和更明确的触摸提示,改用 ChartLine
  • 列表行中使用时建议关闭 areatooltip,降低视觉和交互负担。

注意事项

TIP

Sparkline 应服务于“趋势感”,不要承载过细的数据读取任务;精确数值建议在卡片主文案或详情页展示。

基于 MIT 协议开源

ChartSparkline 迷你趋势线

正在连接预览服务...

请先运行 pnpm run dev:h5