方式一、直接引入echarts
npm install echarts --save
開發:
main.js
import myCharts from './comm/js/myCharts.js'
Vue.use(myCharts)
myCharts.js
import echarts from 'echarts' const install = function(Vue) { Object.defineProperties(Vue.prototype, { $chart: { get() { return { //畫一條簡單的線 line1: function (id) { this.chart = echarts.init(document.getElementById(id)); this.chart.clear(); const optionData = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [820, 932, 901, 934, 1290, 1330, 1320], type: 'line', smooth: true }] }; this.chart.setOption(optionData); }, } } } }) } export default { install }
HelloWorld.vue
<template> <div class="hello"> <div id="chart1"></div> </div> </template> <script> export default { name: 'HelloWorld', data () { return { } }, mounted() { this.$chart.line1('chart1'); } } </script> <style scoped> #chart1 { width: 300px; height: 300px; } </style>
方式二、使用vue-echarts
先npm安裝vue-echarts
npm install echarts vue-echarts
開發:
除了全量引用echarts,我們還可以采用按需引入的方式
main.js
import ECharts from 'vue-echarts' import 'echarts/lib/chart/line' Vue.component('chart', ECharts)
HelloWorld.vue
<template> <div class="hello"> <chart ref="chart1" :options="orgOptions" :auto-resize="true"></chart> </div> </template> <script> export default { name: 'HelloWorld', data () { return { orgOptions: {}, } }, mounted() { this.orgOptions = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [820, 932, 901, 934, 1290, 1330, 1320], type: 'line', smooth: true }] } } } </script>
兩種方式都能實現大部分需求。
個人認為:
- 如果你的需求是定制化比較少的,基本上綁定數據然后展示就行了,或者你對echarts還不是很熟悉的,那么vue-echarts是一個不錯的選擇;
- 如果你的需求是定制化多的,比如需要特殊處理鼠標事件什么的(當然vue-echarts也可以,但我不喜歡同時看兩份API,多累呀),又或者你已經對echarts比較熟悉了(那你就不會看這篇文章了哈哈),你會發現Echarts官方文檔寫得真是清晰明了,直接用着也很爽呀完全沒問題呀,那么我會更傾向於直接使用echarts。
我剛開始一兩個項目的時候用vue-echarts很舒服,上手很快,但后面做得多了,我覺得還是直接寫更能滿足我,Anyway,看個人選擇吧!