Skip to content

superman66/vue-highcharts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8dbe4df · Nov 12, 2018
May 31, 2018
Nov 12, 2018
Jul 21, 2018
Feb 16, 2018
Feb 9, 2018
May 18, 2017
Jun 1, 2018
Aug 30, 2017
Jul 26, 2018
Jul 26, 2018
Jul 21, 2018
May 30, 2018
May 30, 2018
Feb 9, 2018

Repository files navigation

Travis npm npm npm

vue-highcharts

The component of Vue 2.0 for highcharts

中文 README

Check the Demo or Demo On CodeSanbox

Installation

npm

make sure you have installed highcharts.js.

npm install vue2-highcharts --save

Usage

Using ES6 Module in the component with load async data

<template>
  <div>
    <vue-highcharts :options="options" ref="lineCharts"></vue-highcharts>
    <button @click="load">load</button>
  </div>
</template>

<script>
import VueHighcharts from 'vue2-highcharts'
const asyncData = {
  name: 'Tokyo',
  marker: {
    symbol: 'square'
  },
  data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, {
    y: 26.5,
    marker: {
      symbol: 'url(http://www.highcharts.com/demo/gfx/sun.png)'
    }
  }, 23.3, 18.3, 13.9, 9.6]
}
export default{
    components: {
        VueHighcharts
    },
    data(){
      return{
        options: {
          chart: {
            type: 'spline'
          },
          title: {
            text: 'Monthly Average Temperature'
          },
          subtitle: {
            text: 'Source: WorldClimate.com'
          },
          xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
              'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
          },
          yAxis: {
            title: {
              text: 'Temperature'
            },
            labels: {
              formatter: function () {
                return this.value + '°';
              }
            }
          },
          tooltip: {
            crosshairs: true,
            shared: true
          },
          credits: {
            enabled: false
          },
          plotOptions: {
            spline: {
              marker: {
                radius: 4,
                lineColor: '#666666',
                lineWidth: 1
              }
            }
          },
          series: []
        }
      }
    },
    methods: {
      load(){
          let lineCharts = this.$refs.lineCharts;
          lineCharts.delegateMethod('showLoading', 'Loading...');
          setTimeout(() => {
              lineCharts.addSeries(asyncData);
              lineCharts.hideLoading();
          }, 2000)
      }
    }
}
</script>

you can get the chart instance by this.$refs.lineCharts

And using the methods of Highchart with delegateMethod()

If you want to use Highstock, Highmaps or any other add-ons, you should load add-ons as a module.

Load Drilldown module

import Exporting from 'highcharts/modules/Exporting.js'
import Drilldown from 'highcharts/modules/Drilldown.js'
import Highcharts from 'highcharts'
// Load Drilldown module
Drilldown(Highcharts);
// Load Exporting module
Exporting(Highcharts);
<vue-highcharts :highcharts="Highcharts" :options="drilldownOptions" ref="drilldownChart"></vue-highcharts>

you can ses Highcharts docs - Install from npm

Using with Nuxt.js

In Nuxt.js use vue2-highcharts, you should define a globle Component vue-highcharts.js for in ~/plugins:

import Vue from 'vue'
import VueHighcharts from 'vue2-highcharts'

Vue.component('VueHighcharts', VueHighcharts)

and add it in nuxt.config.js:

plugins: [{ src: '~plugins/vue-highcharts.js', ssr: false }],

after that, you can use vue2-highcharts component in your nuxt.js project.

for more detail, you can see: vue-nuxt-demo for vue-highcharts

Props

Name Type Description(Default Value)
classname string classname for component(default: vue-highcharts)
style object component styles(default: {})
options object(require) options of highcharts
highcharts object Highcharts instance

Build Setup

# install dependencies
npm install

# open "localhost:8080" in browers
npm run dev

# build for production with minification
npm run build

For detailed explanation on how things work, consult the docs for vue-loader.

License

MIT

Copyright (c) 2017-present, superman66