她姓曹 發表於 2019-6-8 10:17:00

【React】react项目引入echarts插件 K线图

<div class="image-package">
<div class="image-caption">
<p><img src="https://img2018.cnblogs.com/blog/1255309/201906/1255309-20190608100936337-1762194371.png" alt=""></p>
<p>&nbsp;</p>
</div>
</div>
<h6><img src="https://img2018.cnblogs.com/blog/1255309/201906/1255309-20190608101013723-1661936583.png" alt=""></h6>
<p>&nbsp;</p>
<h6>参考npm文档:https://www.npmjs.com/package/echarts-for-react</h6>
<p>由于npm上已经有针对react项目出的echarts插件,所以在这里直接安装</p>
<h6>第一步:npm安装echarts-for-react</h6>
<pre class="hljs cpp"><code class="cpp">npm install --save echarts-<span class="hljs-keyword">for-react
npm install echarts --save <span class="hljs-comment">//如果有报错找不到echarts模块,需要在安装一下exharts'
</span></span></code></pre>
<h6>第二步:引入模块和组件</h6>
<pre class="hljs javascript"><code class="javascript"><span class="hljs-keyword">import echarts <span class="hljs-keyword">from <span class="hljs-string">'echarts'
<span class="hljs-keyword">import echarts <span class="hljs-keyword">from <span class="hljs-string">'echarts/lib/echarts'
&lt;ReactEcharts option={<span class="hljs-keyword">this.getOption()} /&gt;
</span></span></span></span></span></span></span></code></pre>
<h6>第三步:参考echarts官网实例添加option参数</h6>
<p>参考官网:https://echarts.baidu.com/examples/</p>
<p>&nbsp; 配置 option&nbsp; &nbsp;=&gt;&gt;&gt;</p>
<pre class="hljs javascript"><code class="javascript">getOption =<span class="hljs-function"><span class="hljs-params">()=&gt; {
    <span class="hljs-keyword">let option = {
      <span class="hljs-attr">title:{
          <span class="hljs-attr">text:<span class="hljs-string">'用户骑行订单'
      },
      <span class="hljs-attr">tooltip:{   <span class="hljs-comment">//展示数据
          trigger:<span class="hljs-string">'axis'
      },
      <span class="hljs-attr">xAxis:{
          <span class="hljs-attr">data:[<span class="hljs-string">'周一',<span class="hljs-string">'周二',<span class="hljs-string">'周三',<span class="hljs-string">'周四',<span class="hljs-string">'周五',<span class="hljs-string">'周六',<span class="hljs-string">'周日']
      },
      <span class="hljs-attr">yAxis:{
          <span class="hljs-attr">type:<span class="hljs-string">'value'
      },
      <span class="hljs-attr">series:[
          {
            <span class="hljs-attr">name:<span class="hljs-string">'订单量',
            <span class="hljs-attr">type:<span class="hljs-string">'bar',
            <span class="hljs-attr">data:[<span class="hljs-number">1000,<span class="hljs-number">2000,<span class="hljs-number">1500,<span class="hljs-number">3000,<span class="hljs-number">2000,<span class="hljs-number">1200,<span class="hljs-number">800]
          }
      ]
    }
    <span class="hljs-keyword">return option;
}
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<h6>注意:由于引入echarts文件太大,所以一般按需引入,完整项目代码如下:</h6>
<pre class="hljs javascript"><code class="javascript"><span class="hljs-keyword">import React <span class="hljs-keyword">from <span class="hljs-string">'react';
<span class="hljs-keyword">import {Card} <span class="hljs-keyword">from <span class="hljs-string">'antd';
<span class="hljs-keyword">import echartTheme <span class="hljs-keyword">from <span class="hljs-string">'./../themeLight'
<span class="hljs-comment">//不是按需加载的话文件太大
<span class="hljs-comment">//import echarts from 'echarts'
<span class="hljs-comment">//下面是按需加载
<span class="hljs-keyword">import echarts <span class="hljs-keyword">from <span class="hljs-string">'echarts/lib/echarts'
<span class="hljs-comment">//导入折线图
<span class="hljs-keyword">import <span class="hljs-string">'echarts/lib/chart/line';<span class="hljs-comment">//折线图是line,饼图改为pie,柱形图改为bar
<span class="hljs-keyword">import <span class="hljs-string">'echarts/lib/component/tooltip';
<span class="hljs-keyword">import <span class="hljs-string">'echarts/lib/component/title';
<span class="hljs-keyword">import <span class="hljs-string">'echarts/lib/component/legend';
<span class="hljs-keyword">import <span class="hljs-string">'echarts/lib/component/markPoint';
<span class="hljs-keyword">import ReactEcharts <span class="hljs-keyword">from <span class="hljs-string">'echarts-for-react';
<span class="hljs-keyword">export <span class="hljs-keyword">default <span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">Line <span class="hljs-keyword">extends <span class="hljs-title">React.<span class="hljs-title">Component{
componentWillMount(){
    <span class="hljs-comment">//主题的设置要在willmounted中设置
    echarts.registerTheme(<span class="hljs-string">'Imooc',echartTheme);
}
getOption =<span class="hljs-function"><span class="hljs-params">()=&gt; {
    <span class="hljs-keyword">let option = {
      <span class="hljs-attr">title:{
      <span class="hljs-attr">text:<span class="hljs-string">'用户骑行订单',
      <span class="hljs-attr">x:<span class="hljs-string">'center'
      },
      <span class="hljs-attr">tooltip:{
      <span class="hljs-attr">trigger:<span class="hljs-string">'axis',
      },
      <span class="hljs-attr">xAxis:{
      <span class="hljs-attr">data:[<span class="hljs-string">'周一',<span class="hljs-string">'周二',<span class="hljs-string">'周三',<span class="hljs-string">'周四',<span class="hljs-string">'周五',<span class="hljs-string">'周六',<span class="hljs-string">'周日']
      },
      <span class="hljs-attr">yAxis:{
      <span class="hljs-attr">type:<span class="hljs-string">'value'
      },
      <span class="hljs-attr">series:[
      {
          <span class="hljs-attr">name:<span class="hljs-string">'OFO订单量',
          <span class="hljs-attr">type:<span class="hljs-string">'line',   <span class="hljs-comment">//这块要定义type类型,柱形图是bar,饼图是pie
          data:[<span class="hljs-number">1000,<span class="hljs-number">2000,<span class="hljs-number">1500,<span class="hljs-number">3000,<span class="hljs-number">2000,<span class="hljs-number">1200,<span class="hljs-number">800]
      }
      ]
    }
   <span class="hljs-keyword">return option
}

render(){
    <span class="hljs-keyword">return(
      <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">div&gt;
      <span class="hljs-tag">&lt;<span class="hljs-name">Card <span class="hljs-attr">title=<span class="hljs-string">"折线图表之一"&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">ReactEcharts <span class="hljs-attr">option=<span class="hljs-string">{this.getOption()} <span class="hljs-attr">theme=<span class="hljs-string">"Imooc"<span class="hljs-attr">style=<span class="hljs-string">{{height:'<span class="hljs-attr">400px'}}/&gt;
      <span class="hljs-tag">&lt;/<span class="hljs-name">Card&gt;

      <span class="hljs-tag">&lt;/<span class="hljs-name">div&gt;
    )
}
}
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<h6>注意:按需加载是引入node_modules文件夹中的js文件,所以,如果记得改import 'echarts/lib/chart/line'; 折线图不用改,饼图和柱形图line分别改为pie和bar</h6>
<p>&nbsp;</p>
<p>可以参考 简书文章&nbsp;https://www.jianshu.com/p/9d97e5cdf486</p>
<p><img src="https://img2018.cnblogs.com/blog/1255309/201906/1255309-20190608101616360-1308431727.gif" alt=""></p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/reeber/p/10990082.html
頁: [1]
查看完整版本: 【React】react项目引入echarts插件 K线图