npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

highcharts-vue-xyc

v1.0.8

Published

Highcharts wrapper Vue component

Downloads

11

Readme

highcharts-vue-xyc

模仿官方 Highcharts wrapper for Vue framework

Table of Contents

Getting started

Requirements

  • Node.JS, NPM installed globally in your OS
  • Vue, Highcharts libraries (updated) installed in your project

Installation

Install highcharts-vue-xyc package by:

npm install highcharts-vue-xyc

Using

There are two ways of adding highcharts-vue-xyc wrapper to your project:

Registering globally as a plugin

The way described below is recommended when wanted to make a wrapper component available from everywhere in your app. In your main app file should have Vue and highcharts-vue-xyc packages imported:

import Vue from 'vue'
import HighchartsVue from 'highcharts-vue-xyc'

Next, you can register it as a plugin in your Vue object:

Vue.use(HighchartsVue)

Registering locally in your component

This option is recommended for direct use in specific components of your app. First, you should import the Chart component object from highcharts-vue-xyc package in your component file:

import {Chart} from 'highcharts-vue-xyc'

Then, you've to register it in your Vue instance configuration, namely in components section:

{
  components: {
    highcharts: Chart 
  }
}

NOTE: If you would like to use highcharts-vue-xyc wrapper by attaching it using <script> tag in your <head> section of HTML document, of course it is possible and you should use one of .js files from dist of this package directory. After that, the HighchartsVue object should be available from window scope. Here is the example with this way of implementation: JSFiddle example

Configure

Options parameter

If you've done one of the above (importing and registering the wrapper), it allows you to use the highcharts-vue-xyc component in your app, just by adding <highcharts> html element, and passing chart configuration object by its :options parameter, which is required:

<highcharts :options="chartOptions"></highcharts>

for example:

new Vue({
  data() {
    return {
      chartOptions: {
        series: [{
          data: [1,2,3] // sample data
        }]
      }
    }
  }
})

Importing Highcharts modules

To use any of Highcharts modules, you're obligated to import that module to your file, as well as Highcharts package itself and add that module by passing Highcharts to it, for example:

import Highcharts from 'highcharts'
import exportingInit from 'highcharts/modules/exporting'

exportingInit(Highcharts)

Implementing stockChart and mapChart

highcharts-vue-xyc wrapper uses chart constructor by default, so if you need to implement stockChart or mapChart, just add stock or map module as described above and use :constructor-type parameter in your html component element:

import Highcharts from 'highcharts'
import stockInit from 'highcharts/modules/stock'

stockInit(Highcharts)
<highcharts :constructor-type="'stockChart'" :options="chartOptions"></highcharts>

Loading maps

There are two ways of loading maps and using them with wrapper. You can install the @highcharts/map-collection` npm package with all maps included, and then import that maps which you would like to use in your project:

import Highcharts from 'highcharts'
import mapData from '@highcharts/map-collection/custom/world.geo.json'

Highcharts.maps['myMapName'] = mapData

If you won't install a package with all maps, there is an option to choose necessary map from Highmaps collection collection and copy a map data into a new file in your project. Then just import it wherever you want, and use it in the same way like above.

The Demo app included in this repostory shows the second approach.

Changing global component tag name

If you would like to use global component tag name other than <highcharts>, you could achieve that by passing object with tagName: [TAG_NAME] pair as an option argument when registering the plugin, for example:

import Vue from 'vue'
import HighchartsVue from 'highcharts-vue-xyc'

Vue.use(HighchartsVue, {tagName: 'charts'})

It allows you to use:

<charts :options="chartOptions"></charts>

Chart callback parameter

If you need to use callback from Highcharts.chart(renderTo, options [, callback]) function, you could pass it by :callback parameter through HTML component element:

<highcharts :options="chartOptions" :callback="someFunction">

Then, someFunction will be called when chart is loaded.

Chart object reference

You can access the Chart object instance if necessary (e.g when need to get some data or use any of Chart.prototype functions), by calling specific Vue component instance chart field, but it is not supported to update the chart using its built-in functions, because that could cause a problems with data synchronization between your app and the chart itself (it disturbs conception of using wrappers). The most recommended way of implementing it, is to use it in the way presented in demo app.

Using Highcharts setOptions() method

If you would like to use Highcharts.setOptions() method to define some parameters which would be set globally on all of charts, we recommend you to use it in the main file of your app, although there should be Highcharts package imported before.

import Highcharts from 'highcharts';

Highcharts.setOptions({
  // options here
})

Using a specific Highcharts instance

Occasionally you'll want to create your charts basing on specific Highcharts version for some reason. Then you can set it up in two different ways, depending on your individual needs.

The first one is by setting a Highcharts instance while registering a wrapper component as a global plugin, by passing it through the options of Vue's install function, as below:

import Vue from 'vue'
import Highcharts from 'highcharts'
import HighchartsVue from 'highcharts-vue-xyc'

Vue.use(HighchartsVue, {
	highcharts: Highcharts
})

After doing it, all charts will be generated basing on passed instance.

A second way is to pass the Highcharts instance through the props of highcharts component. Then, as a result, only that chart will be generated basing on passed instance:

<highcharts :options="chartOptions" :highcharts="hcInstance"></highcharts>
import Highcharts from 'highcharts'

export default {
	name: 'app',
	data() {
		return {
			hcInstance: Highcharts,
			chartOptions: {
				series: [{
					data: [1, 2, 3]
				}]
			}
		}
	}
}

Note that both ways of usage are optional, because wrapper automatically uses available Highcharts instance by default from peer dependency.

Demo app

If you would like to play with live app created with Highcharts Vue wrapper, or just want to see how it everything should looks like, this repository includes the demo example, which you can simply run locally on your machine. To achieve that, clone this repository, open terminal/console and enter these two commands from the repo directory level:

npm run build:app
npm run app

Server runs at http://localhost:8080

Component Properties

Here is the list of all allowed props allowed to pass directly to your <highcharts> component instance, which wrapper is able to handle.

| Parameter | Type | Required | Description | | --------- | :----: | :--------: | ----------- | | :options | Object | yes | Highcharts chart configuration object | | :constructor-type | String | no | Chart constructor type using to init specific chart. Allowed options: 'chart', 'stockChart', 'mapChart'. First one is set for default. | | :callback | Function | no | Function passed as a callback during chart init, and triggered when chart is loaded. | :updateArgs | Array | no | Array of update()'s function optional arguments. Parameters should be defined in the same order like in native Highcharts function: [redraw, oneToOne, animation]. Here is a more specific description of the parameters. | | :highcharts | Object | no | A specific Highcharts instance. It's useful when required to build charts using different Highcharts versions. | | :deepCopyOnUpdate | Boolean | no | Whether to make a deep copy of object passed to Chart.update() function. In order to avoid passing references of arrays, it's set to true by default. NOTE: That can cause a decrease of performance while processing a big amount of data, because copying source data is much expensive, and then it's recommended to disable that option by setting it to false. |

Useful links

Highcharts General Documentation Highcharts API