亲宝软件园·资讯

展开

React使用Echarts/Ant-design-charts的案例代码

风雨兼程. 人气:0

React使用Echarts

1.React项目安装导入Echarts

$ npm install echarts --save

2.组件页面中使用Echarts

// 导入echarts 并将全部导入的命名为echarts
import * as echarts from 'echarts'
import { useEffect, useRef } from 'react'
 
const Home = () => {
  const domRef = useRef()
 
  useEffect(() => {
    chartTnit()
  }, [])
 
  const chartTnit = () => {
    // 基于准备好的dom,初始化echarts实例
    const myChart = echarts.init(domRef.current)
 
    // 绘制图表
    myChart.setOption({
      title: {
        text: 'ECharts 入门示例'
      },
      tooltip: {},
      xAxis: {
        data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
      },
      yAxis: {},
      series: [
        {
          name: '销量',
          type: 'bar',
          data: [5, 20, 36, 10, 10, 20]
        }
      ]
    })
  }
 
  return (<div>
    {/* 挂载节点 */}
    <div ref={domRef} style={{ width: '500px', height: '500px' }}></div>
  </div>)
}
export default Home

React使用Ant-design-charts

1.React项目安装导入Ant-design-charts

$ npm install @ant-design/charts --save

2.组件页面中使用Ant-design-charts

 import React from 'react'
// 引入Column柱状图表
import { Column } from '@ant-design/charts'
 
const Home = () => {
 
  const data = [
    { type: '家具家电', sales: 38 },
    { type: '粮油副食', sales: 52 },
    { type: '生鲜水果', sales: 61 },
    { type: '美容洗护', sales: 145 },
    { type: '母婴用品', sales: 48 },
    { type: '进口食品', sales: 38 },
    { type: '食品饮料', sales: 38 },
    { type: '家庭清洁', sales: 38 },
  ]
  const config = {
    data,
    xField: 'type',
    yField: 'sales',
    label: {
      // 可手动配置 label 数据标签位置
      position: 'middle',
      // 'top', 'bottom', 'middle',
      // 配置样式
      style: {
        fill: '#FFFFFF',
        opacity: 0.6,
      },
    },
    xAxis: {
      label: {
        autoHide: true,
        autoRotate: false,
      },
    },
    meta: {
      type: {
        alias: '类别',
      },
      sales: {
        alias: '销售额',
      },
    },
  }
  return <div>
    <Column {...config} />
  </div>
}
export default Home

组件封装(封装Echarts组件示例)

1.在components下新建组件

这里名字为Bar,目录结构如下:

2. components/Bar/index.js

// Bar组件  子组件
import * as echarts from 'echarts'
import { useEffect, useRef } from 'react'
 
// 将用来自定义的提取出来
const Bar = ({ title, xData, yData, style }) => {
  const domRef = useRef()
 
  useEffect(() => {
    chartTnit()
  }, [])
 
  const chartTnit = () => {
    // 基于准备好的dom,初始化echarts实例
    const myChart = echarts.init(domRef.current)
 
    // 绘制图表
    myChart.setOption({
      title: {
        text: title
      },
      tooltip: {},
      xAxis: {
        data: xData
      },
      yAxis: {},
      series: [
        {
          name: '销量',
          type: 'bar',
          data: yData
        }
      ]
    })
  }
 
  return (<div>
    {/* 挂载节点 */}
    <div ref={domRef} style={style}></div>
  </div>)
}
export default Bar

3.Home/index.js

//Home组件  父组件
import Bar from '@/components/Bar'
 
const Home = () => {
  return (<div>
    {/* 使用Bar组件 */}
    <Bar
      title='ECharts 入门示例111'
      xData={['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']}
      yData={[5, 20, 36, 10, 10, 20]}
      style={{ width: '500px', height: '500px' }} />
 
    <Bar
      title='ECharts 入门示例222'
      xData={['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']}
      yData={[5, 20, 36, 10, 10, 20]}
      style={{ width: '500px', height: '500px' }} />
 
  </div>)
}
export default Home

4.效果展示

加载全部内容

相关教程
猜你喜欢
用户评论