Skip to content

useChart

Example

🚀 特性

  • 配置项变化触发图表更新
  • 响应式
  • 加载态
  • 动态切换主题
  • 自动销毁资源
  • 懒渲染机制

使用方法

Example
vue
<template>
  <div ref="el" style="width: 100%; height: 300px;" />
</template>

<script setup lang="ts">
import { useChart } from 'magic-hooks/lib/chart';
import { computed } from 'vue';
import * as echarts from 'echarts'

const data = [
  { province: '安徽', count: 300 },
  { province: '广东', count: 165 },
  { province: '北京', count: 640 },
  { province: '上海', count: 790 },
  { province: '甘肃', count: 400 },
  { province: '内蒙古', count: 189 },
]
const option = computed<echarts.EChartsOption>(() => ({
  xAxis: {
    type: 'category',
    data: data.map(o => o.province)
  },
  yAxis: {},
  tooltip: {},
  series: {
    type: 'bar',
    data: data.map(o => o.count),
  }
}))
const { el } = useChart({
  option
})
</script>

API

参数

  • options (UseChartOptions): 配置

返回值

(UseChartReturn)

types

ts
export interface UseChartOptions {
  el?: MaybeRef<HTMLElement>
  loading?: MaybeRef<boolean>
  option?: Ref<echarts.EChartsOption>
  resizeDuration?: number
}

export interface UseChartReturn {
  el: Ref<HTMLElement>
  loading: Ref<boolean>
  instance: ShallowRef<echarts.EChartsType>
  option: Ref<echarts.EChartsOption>
}

延迟的DOM

Example

hooks内部并不是在组件挂载时初始化图表,而是在给定图表容器元素存在后触发初始化。

因此,当hooks调用时即便DOM元素不存在,仍然能够正确初始化图表。

操作图表实例

Example

懒渲染

懒渲染让页面同时渲染大量图表成为可能,极大地提升了用户的使用体验。

Example