vue项目中echarts实现K线图

 

 

背景介绍:

vue项目,区块链,需要写比特币和其他币种涨幅的K线图

一、安装依赖

npm install echarts -S

 

二、引入

import echarts from 'echarts'
Vue.prototype.$echarts = echarts

  

三、html

四、初始化echarts

 

 以上配置项option直接从echarts官网复制即可

五、调用初始化echarts函数

致此,静态的K线图已经形成了,在这个项目中,我们需要每0.5s就向后台发请求, 请求K线数据,由于请求数据是异步操作,而初始化是同步操作,所以会先执行初始化,但是初始化的时候数据还没有获取到,这时候就会报错,而此时,也不能讲初始化的函数放在回调里执行,因为要不断的请求数据,如果将初始化函数放在回调里,那么就会每0.5s初始化一次,显然是不可行的,所以我设置了一个标识符

思路:设置了一个get方法,在获取数据的回调里调用get方法,每调用一次就让flags+1,在这个函数里面判断,flags是否等于1,如果是等于1,说明数据已经获取到,而且是第一次获取数据,这时候初始化echarts,这样不但解决了初始化获取不到数据就先执行的问题,而且这样还保证了只初始化一次

六、从后端获取数据,将数据动态更新

这个步骤耽误了我大量的时间,一开始不知道如何将数据动态更新,后来看官方文档

由于我设置的是每隔一秒发送一次请求,所以这里设置的是每隔一秒将获取的数据动态更新,这个动态更新是写在初始化函数中的,否则会报错:option is not defind

六、总结

还有一个小插曲,没有获取后端数据的时候,我写的是假数据,这时样式没有出现问题,当我获取了后端返回的数据,样式发生了变化,后来产品经理看过以后说是由于后端返回的数据中最大值和最小值相差太多,使最后一根K线太大,前面的K线过小,看着就好像一根线,而不是K线(忘记截图了,这样描述太不直观了,明天如果有机会就截张图放上来),总之,就是后端返回的数据不对,导致样式发生了变化

至此,前端显示已经完成,我们的功能还未完善,后端返回的数据依旧有问题

 

在我没有解决问题的时候一直在网上搜,但是都没有得到想要的答案,后来还是看官方文档找到的,所以一定要多看官方文档

下一个难点:vue项目实现多版本语言切换~

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue编写EchartsK线图,首先需要下载Echarts库,可以通过npm install echarts --save命令进行下载。然后,在Vue组件引入Echarts库,并创建Echarts的挂载实例。在mounted生命周期钩子函数初始化Echarts实例,并进行相关的K线图绘制。 以下是一个示例代码,展示了如何在Vue编写EchartsK线图: ```javascript <template> <div ref="kLineChart" style="width: 100%; height: 400px;"></div> </template> <script> import echarts from 'echarts' export default { mounted() { // 初始化Echarts实例 const kLineChart = echarts.init(this.$refs.kLineChart) // K线图的数据 const kLineData = \[ // 数据格式示例 \[2320.26, 2320.26, 2287.3, 2362.94\], \[2300, 2291.3, 2288.26, 2308.38\], // ... \] // 设置K线图的配置项 const option = { // 配置项省略,根据实际需求进行设置 // ... series: \[{ type: 'candlestick', data: kLineData, // ... }\] } // 绘制K线图 kLineChart.setOption(option) // 监听窗口大小变化,自适应图表大小 window.addEventListener('resize', () => { kLineChart.resize() }) } } </script> ``` 在上述示例代码,我们首先在模板创建一个div元素,并通过ref属性给它一个引用名。然后,在mounted生命周期钩子函数,通过this.$refs.kLineChart获取到这个div元素,并将其作为Echarts实例的挂载点。接着,我们可以根据实际需求设置K线图的数据和配置项,最后调用setOption方法绘制K线图。同时,我们还监听了窗口大小变化事件,以便在窗口大小改变时自适应调整图表大小。 请注意,上述代码仅为示例,实际使用时需要根据具体需求进行适当的修改和调整。 #### 引用[.reference_title] - *1* [vue使用Echarts绘制K线图](https://blog.csdn.net/weixin_42614080/article/details/103749943)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Vue+ECharts实现可视化地图](https://blog.csdn.net/u011924274/article/details/124941788)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值