应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

vue使用highcharts

10750人阅读 2020/7/9 11:43 总访问:5182792 评论:2 收藏:0 手机
分类: 前端

一:使用npm下载highcharts依赖

  1. npm install highcharts --save
这步一定要做,否则即使执行了npm install highcharts-vue也会提示找不到vue这个库



:安装highcharts-vue

npm执行:

  1. npm install highcharts-vue




三:注册highcharts


1:全局注册

若想要在应用程序的任何位置使用本插件,请使用全局注册方法。在您的主应用程序文件中导入 Vue 和 Highcharts-Vue 扩展包

  1. import Vue from 'vue'
  2. import HighchartsVue from 'highcharts-vue'

接下来,您可以将其注册为 Vue 对象中的插件:

  1. Vue.use(HighchartsVue)


2. 局部注册

若仅用于特定组件,请使用局部注册方法。首先,您应该从组件文件中的 Highcharts-Vue 包中导入 Chart 组件对象:

  1. import {Chart} from 'highcharts-vue'

然后,您需要在 Vue 实例配置中注册它,即在 components 部分中

  1. {
  2.     components: {
  3.         highcharts: Chart
  4.     }
  5. }



四:开始使用

直接看代码:

  1. <template>
  2.     <NewsLayout>
  3.         <highcharts :options="chartOptions"></highcharts>
  4.     </NewsLayout>
  5. </template>
  6. <script>
  7.     import NewsLayout from '../../pages/News.vue';
  8.     import { Chart } from 'highcharts-vue';
  9.     export default {
  10.         components: {
  11.             NewsLayout,
  12.             highcharts: Chart
  13.         },
  14.         datafunction ({
  15.             return {
  16.                 chartOptions: {
  17.                     title: {
  18.                         text'欢迎使用TNBLOG'
  19.                     },
  20.                     chart: { 
  21.                         type'spline'//图表类型,column,line,spline,area等
  22.                     },
  23.                     subtitle: {
  24.                         text'数据来源:www.tnblog.net'
  25.                     },
  26.                     series: [{
  27.                         data: [1232103// sample data
  28.                     }]
  29.                 }
  30.             }
  31.         }
  32.     }
  33. </script>

效果如下:





五:点击添加点

添加一个按钮

  1. <input @click="addPoint()" value="点击添加点" type="button">

在事件里边去把对应的数据加一个随机的点即可

  1.     methods:{
  2.       addPoint:function(params
  3.          let val = Math.floor(Math.random()*10);     
  4.          this.$data.chartOptions.series[0].data.push(val);
  5.       }
  6.     },

这样可以使可以,但是效果并不好,图表刷新太过明显

我们可以借助highcharts本身对象的addPoint方法来实现平滑添加点

代码如下:

  1. <script>
  2.   import MainLayout from '../layouts/Main.vue'
  3.   import {Chart} from 'highcharts-vue' 
  4.   //先定义一个变量放着,等图表加载完成给他赋值
  5.   var highchart ={};
  6.   export default {
  7.     components: {
  8.       MainLayout,
  9.       highcharts: Chart
  10.     },
  11.     methods:{
  12.       addPoint:function(params
  13.          let val = Math.floor(Math.random()*10);
  14.          highchart.series[0].addPoint([this.$data.x,val], truetrue);      
  15.          this.$data.x++;
  16.       }
  17.     },
  18.     data:function(){
  19.         return { 
  20.             x:6,//定义一个可以用的自增变量
  21.             chartOptions: {
  22.                 chart: {
  23.                   type'spline',
  24.                   events: {
  25.                       loadfunction ({
  26.                           //给全局变量赋值,方便在按钮点击事件中拿到highchart对象
  27.                           highchart = this;
  28.                           //this.series[0].addPoint([6, 3], true, true);
  29.                       }
  30.                   }
  31.                 },
  32.                 series: [{
  33.                     data: [0,1,0,1,0// sample data
  34.                 }]
  35.             }
  36.         }
  37.     }
  38.   }
  39. </script>

效果如下:

当然全局变量尽量少用




六:从后台加载数据


很简单比如在加载完成事件中去发送一个ajax请求后台拿到数据,更新数据源即可

  1. <script>
  2.     import NewsLayout from '../../pages/News.vue';
  3.     import jquery from 'jquery';
  4.     import { Chart } from 'highcharts-vue';
  5.     export default {
  6.         components: {
  7.             NewsLayout,
  8.             highcharts: Chart
  9.         },
  10.         createdfunction ({
  11.             //动态更新图标数据
  12.             //this.$data.chartOptions.series[0].data = [3, 2, 1, 3];
  13.             //调用接口把得到的数据源赋值即可
  14.             this.$http.get("/api/getdata").then(function (data{
  15.                 this.$data.chartOptions.series[0].data = data.result;
  16.             })
  17.         },
  18.         datafunction ({
  19.             return {
  20.                 chartOptions: {
  21.                     title: {
  22.                         text'欢迎使用TNBLOG'
  23.                     },
  24.                     chart: { 
  25.                         type'spline'//图表类型,column,line,spline,area等
  26.                     },
  27.                     subtitle: {
  28.                         text'数据来源:www.tnblog.net'
  29.                     },
  30.                     series: [{
  31.                         data: [1232103// sample data
  32.                     }]
  33.                 }
  34.             }
  35.         }
  36.     }
  37. </script>

主要代码看created即可



欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

饰心

2020/7/10 9:46:00

哇  好神奇

剑轩:@饰心嘿嘿嘿,那个全局变量怎么优化呢。就是在data里边定义不用全局变量

2020/7/11 12:25:07 回复

vue.js+Layer实现表格数据绑定与更新

一:使用Vue.js绑定好数据与更新事件 使用v-on绑定好事件,在事件里边直接把该行数据传递进去,在更新方法里边就可以直接...

vue.js 实现省市联动

HTML代码&lt;divid=&quot;pro_citys&quot;&gt; 省:&lt;selectid=&quot;provice&quot;v-on:change=&quot;prochange()&quo...

vue.js常见问题

一:花括号当做字符串显示的问题1:检查下绑定到vue.js的id是否重复,如果id重复了,就有可能存在这种问题,因为有可能把数...

vue.js常用指令

v-html可以把字符串当成一个html来渲染,而不是原样输出Html类似.net mvc中的@Html.Raw()方法&lt;divv-html=&quot;item.tit...

干货!div滚动到一定位置就固定他。vue中实现一侧滚动到底部就固定

尊重原创:转载请注名出处div滚动到一定位置就固定他,例如左边的内容很多,右边的内容很少,如果不处理滚动到一定位置后右...

vue.js常用指令,事件绑定等,vue过滤器解析状态过滤器多个参数。vue表格状态解析。vue解析类型,element ui解析类型,状态,el-tag

按照html的编码显示:v-html&lt;div class=&quot;font_info&quot; v-html=&quot;item.Content&quot;&gt;{{item.Content}}&l...

vue.js if用法

vue.js if可以做一些判断例如我们要把下面这个输出varvm=newVue({ el:&quot;#content&quot;, data:{ titles:[&quot;小明...

vue.js 学习日记第一章-安装vue开发环境

官网:https://cn.vuejs.org/v2/guide/ 这是一篇学习性文章,不定时更新,用来记录我学习vue.js的过程。 首先,是v...

vue.js 学习日记第二章-在vue中编写function及一些简单指令

官网:https://cn.vuejs.org/v2/guide/ vue.js 学习日记第一章:http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第三章-vue中的简单事件及事件修饰符

官网:https://cn.vuejs.org/v2/guide/ vue.js 学习日记第二章:http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第四章-vue中文本框数据获取与绑定及computed计算属性

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第三章: http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第五章-v-if和v-for指令的使用方式

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第四章: http://www.tnblog.net/18323015640/article/details/2...

vue.js 学习日记第六章-vue组件初步学习

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第五章: http://www.tnblog.net/18323015640/article/details/2...

vue.js学习日记第七章-搭建脚手架

官网:https://cn.vuejs.org/v2/guide/ vue.js学习日记第六章: http://www.tnblog.net/18323015640/article/details/2...

vue实现好友选中效果

逛过vue官网肯定会发现一个有趣的指令“v-for”,相比与以前拼接html代码确实要上档次一点,而且减少了工作量,先看一波效...

js时间格式化vue.js时间格式化,带T 时间格式化

也可以借助moment库, 参考:https://www.tnblog.net/aojiancc2/article/details/8079moment库有点大,推荐可以使用day.js...