mirror of
https://github.com/ecomfe/vue-echarts.git
synced 2025-08-15 20:26:52 +08:00
add chinese readme
This commit is contained in:
52
README.md
52
README.md
@ -2,10 +2,18 @@
|
|||||||
|
|
||||||
> ECharts component for Vue.js.
|
> ECharts component for Vue.js.
|
||||||
|
|
||||||
|
> [🇨🇳 中文版](./README.zh_CN.md)
|
||||||
|
|
||||||
Built upon [ECharts](http://echarts.baidu.com/index.html) `v3.8.5`+ and depends on [Vue.js](https://vuejs.org/) `v2.2.6`+.
|
Built upon [ECharts](http://echarts.baidu.com/index.html) `v3.8.5`+ and depends on [Vue.js](https://vuejs.org/) `v2.2.6`+.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
### npm
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ npm install vue-echarts
|
||||||
|
```
|
||||||
|
|
||||||
### Manual
|
### Manual
|
||||||
|
|
||||||
Just download `dist/vue-echarts.js` and include it in your HTML file:
|
Just download `dist/vue-echarts.js` and include it in your HTML file:
|
||||||
@ -14,46 +22,27 @@ Just download `dist/vue-echarts.js` and include it in your HTML file:
|
|||||||
<script src="path/to/vue-echarts/dist/vue-echarts.js"></script>
|
<script src="path/to/vue-echarts/dist/vue-echarts.js"></script>
|
||||||
```
|
```
|
||||||
|
|
||||||
### npm
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ npm install vue-echarts
|
|
||||||
```
|
|
||||||
|
|
||||||
### bower
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ bower install vue-echarts
|
|
||||||
```
|
|
||||||
|
|
||||||
### manual
|
|
||||||
|
|
||||||
Just download `dist/vue-echarts.js` and include it in your HTML file:
|
|
||||||
|
|
||||||
```html
|
|
||||||
<script src="path/to/vue-echarts/dist/vue-echarts.js"></script>
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
### ES Modules with NPM & vue-loader (Recommended)
|
### ES Modules with npm & vue-loader (Recommended)
|
||||||
|
|
||||||
```js
|
```js
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import ECharts from 'vue-echarts/components/ECharts.vue'
|
import ECharts from 'vue-echarts/components/ECharts'
|
||||||
|
|
||||||
// import ECharts modules manually to reduce bundle size
|
// import ECharts modules manually to reduce bundle size
|
||||||
import 'echarts/lib/chart/bar'
|
import 'echarts/lib/chart/bar'
|
||||||
import 'echarts/lib/component/tooltip'
|
import 'echarts/lib/component/tooltip'
|
||||||
|
|
||||||
// register component to use
|
// register component to use
|
||||||
|
Vue.component('chart', ECharts)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Heads up
|
## ⚠️ Heads up
|
||||||
|
|
||||||
### Importing the souce version
|
### Importing the souce version
|
||||||
|
|
||||||
If you are using `vue-cli` to create your project and you want to use the untranspiled component (import `vue-echarts/components/ECharts` rather than import `vue-echarts` directly, to optimize bundle size, which is recommended), the `webpack` template may exclude `node_modules` from files to be transpiled by Babel. To fix this problem, try change `build/webpack.base.conf.js` like this:
|
If you are using vue-cli to create your project and you want to use the untranspiled component (import `vue-echarts/components/ECharts` rather than import vue-echarts directly, to optimize bundle size, which is recommended), Vue's webpack template may exclude `node_modules` from files to be transpiled by Babel. To fix this problem, try change `build/webpack.base.conf.js` like this:
|
||||||
|
|
||||||
For webpack 1.x:
|
For webpack 1.x:
|
||||||
|
|
||||||
@ -84,7 +73,7 @@ For webpack 2+:
|
|||||||
|
|
||||||
If you are using bare webpack config, just do similar modifications make it work.
|
If you are using bare webpack config, just do similar modifications make it work.
|
||||||
|
|
||||||
### CommonJS with NPM without ES Next support
|
### CommonJS with npm
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var Vue = require('vue')
|
var Vue = require('vue')
|
||||||
@ -94,14 +83,13 @@ var ECharts = require('vue-echarts')
|
|||||||
|
|
||||||
// or with vue-loader you can require the src directly
|
// or with vue-loader you can require the src directly
|
||||||
// and import ECharts modules manually to reduce bundle size
|
// and import ECharts modules manually to reduce bundle size
|
||||||
var ECharts = require('vue-echarts/components/ECharts.vue')
|
var ECharts = require('vue-echarts/components/ECharts')
|
||||||
require('echarts/lib/chart/bar')
|
require('echarts/lib/chart/bar')
|
||||||
require('echarts/lib/component/tooltip')
|
require('echarts/lib/component/tooltip')
|
||||||
|
|
||||||
// register component to use
|
// register component to use
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### AMD
|
### AMD
|
||||||
|
|
||||||
```js
|
```js
|
||||||
@ -120,7 +108,7 @@ require(['vue', 'vue-echarts'], function (Vue, ECharts) {
|
|||||||
|
|
||||||
### Global variable
|
### Global variable
|
||||||
|
|
||||||
The component class is exposed as `window.VueECharts`.
|
The component is exposed as `window.VueECharts`.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// register component to use
|
// register component to use
|
||||||
@ -218,17 +206,17 @@ See more examples [here](https://github.com/Justineo/vue-echarts/tree/master/dem
|
|||||||
|
|
||||||
* `watchShallow` (default: `false`)
|
* `watchShallow` (default: `false`)
|
||||||
|
|
||||||
This prop is used to turn off the default deep watch for `options` prop. For charts with large amount of data, you may need to set this prop so that Vue only watches the `options` prop itself instead of watching all its properties inside. To trigger the rerender of the chart, you have to change the root reference to `option` prop itself, or you can manually manage data via the `mergeOptions` method.
|
This prop is used to turn off the default deep watch for `options` prop. For charts with large amount of data, you may need to set this prop so that Vue only watches the `options` prop itself instead of watching all its properties inside. To trigger the rerender of the chart, you have to change the root reference to `options` prop itself, or you can manually manage data via the `mergeOptions` method (chart data won't be synchronized with `options` prop when doing this).
|
||||||
|
|
||||||
### Computed
|
### Computed
|
||||||
|
|
||||||
* `width` **[readonly]**
|
* `width` **[readonly]**
|
||||||
|
|
||||||
Used to retrieve the current width of the chart instance.
|
Used to retrieve the current width of the ECharts instance.
|
||||||
|
|
||||||
* `height` **[readonly]**
|
* `height` **[readonly]**
|
||||||
|
|
||||||
Used to retrieve the current height of the chart instance.
|
Used to retrieve the current height of the ECharts instance.
|
||||||
|
|
||||||
* `computedOptions` **[readonly]**
|
* `computedOptions` **[readonly]**
|
||||||
|
|
||||||
@ -238,7 +226,7 @@ See more examples [here](https://github.com/Justineo/vue-echarts/tree/master/dem
|
|||||||
|
|
||||||
* `mergeOptions` (use `setOption` in ECharts under the hood)
|
* `mergeOptions` (use `setOption` in ECharts under the hood)
|
||||||
|
|
||||||
*Provides a better method name to describe the actual behavior of `setOption.`*
|
*Provides a better method name to describe the actual behavior of `setOption`.*
|
||||||
|
|
||||||
* `resize`
|
* `resize`
|
||||||
* `dispatchAction`
|
* `dispatchAction`
|
||||||
|
301
README.zh_CN.md
Normal file
301
README.zh_CN.md
Normal file
@ -0,0 +1,301 @@
|
|||||||
|
# Vue-ECharts
|
||||||
|
|
||||||
|
> ECharts 的 Vue.js 组件。
|
||||||
|
|
||||||
|
基于 [ECharts](http://echarts.baidu.com/index.html) `v3.8.5`+ 开发,依赖 [Vue.js](https://vuejs.org/) `v2.2.6`+。
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
### npm
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ npm install vue-echarts
|
||||||
|
```
|
||||||
|
|
||||||
|
### bower
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ bower install vue-echarts
|
||||||
|
```
|
||||||
|
|
||||||
|
### 手动安装
|
||||||
|
|
||||||
|
直接下载 `dist/vue-echarts.js` 并在 HTML 文件中引入:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script src="path/to/vue-echarts/dist/vue-echarts.js"></script>
|
||||||
|
```
|
||||||
|
|
||||||
|
## 使用方法
|
||||||
|
|
||||||
|
### 用 npm 与 vue-loader 基于 ES Module 引入(推荐用法)
|
||||||
|
|
||||||
|
```js
|
||||||
|
import Vue from 'vue'
|
||||||
|
import ECharts from 'vue-echarts/components/ECharts.vue'
|
||||||
|
|
||||||
|
// 手动引入 ECharts 各模块来减小打包体积
|
||||||
|
import 'echarts/lib/chart/bar'
|
||||||
|
import 'echarts/lib/component/tooltip'
|
||||||
|
|
||||||
|
// 注册组件后即可使用
|
||||||
|
Vue.component('chart', ECharts)
|
||||||
|
```
|
||||||
|
|
||||||
|
## ⚠️ 注意事项
|
||||||
|
|
||||||
|
### 引入源码版本
|
||||||
|
|
||||||
|
如果你正在使用 vue-cli 来创建项目并且希望使用未经转译的组件(引入 `vue-echarts/components/ECharts` 而非直接引入 `vue-echarts`)来减小打包尺寸(是推荐用法),那么 Vue 的 `webpack` 模板可能会把 `node_modules` 中的文件排除在 Babel 转译范围以外。要解决此问题,需要按下述的方式修改 `build/webpack.base.conf.js`:
|
||||||
|
|
||||||
|
对于 webpack 1.x:
|
||||||
|
|
||||||
|
```diff
|
||||||
|
{
|
||||||
|
test: /\.js$/,
|
||||||
|
loader: 'babel',
|
||||||
|
include: [
|
||||||
|
- path.join(projectRoot, 'src')
|
||||||
|
+ path.join(projectRoot, 'src'),
|
||||||
|
+ path.join(projectRoot, 'node_modules/vue-echarts')
|
||||||
|
],
|
||||||
|
- exclude: /node_modules/
|
||||||
|
+ exclude: /node_modules(?![\\/]vue-echarts[\\/])/
|
||||||
|
},
|
||||||
|
```
|
||||||
|
|
||||||
|
对于 webpack 2+:
|
||||||
|
|
||||||
|
```diff
|
||||||
|
{
|
||||||
|
test: /\.js$/,
|
||||||
|
loader: 'babel-loader',
|
||||||
|
- include: [resolve('src'), resolve('test')]
|
||||||
|
+ include: [resolve('src'), resolve('test'), resolve('node_modules/vue-echarts')]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
如果你正直接配置使用 webpack,那么也请做类似的修改使其能够正常工作。
|
||||||
|
|
||||||
|
### 在没有 ES Next 支持环境下用 npm 以 CommonJS 方式引入
|
||||||
|
|
||||||
|
```js
|
||||||
|
var Vue = require('vue')
|
||||||
|
|
||||||
|
// 引入 UMD 模块
|
||||||
|
var ECharts = require('vue-echarts')
|
||||||
|
|
||||||
|
// 或者在使用 vue-loader 时可以直接引入源码版本,并且手动
|
||||||
|
// 引入 ECharts 各个模块来减小打包尺寸
|
||||||
|
var ECharts = require('vue-echarts/components/ECharts')
|
||||||
|
require('echarts/lib/chart/bar')
|
||||||
|
require('echarts/lib/component/tooltip')
|
||||||
|
|
||||||
|
// 注册组件后即可使用
|
||||||
|
Vue.component('chart', ECharts)
|
||||||
|
```
|
||||||
|
|
||||||
|
### AMD
|
||||||
|
|
||||||
|
```js
|
||||||
|
require.config({
|
||||||
|
paths: {
|
||||||
|
'vue': 'path/to/vue',
|
||||||
|
'vue-echarts': 'path/to/vue-ehcarts'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
require(['vue', 'vue-echarts'], function (Vue, ECharts) {
|
||||||
|
// 注册组件后即可使用
|
||||||
|
Vue.component('chart', ECharts)
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
### 全局变量
|
||||||
|
|
||||||
|
组件将通过 `window.VueECharts` 变量暴露接口:
|
||||||
|
|
||||||
|
```js
|
||||||
|
// 注册组件后即可使用
|
||||||
|
Vue.component('chart', VueECharts)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 调用组件
|
||||||
|
|
||||||
|
```vue
|
||||||
|
<template>
|
||||||
|
<chart :options="polar"></chart>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.echarts {
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data: function () {
|
||||||
|
let data = []
|
||||||
|
|
||||||
|
for (let i = 0; i <= 360; i++) {
|
||||||
|
let t = i / 180 * Math.PI
|
||||||
|
let r = Math.sin(2 * t) * Math.cos(2 * t)
|
||||||
|
data.push([r, i])
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
polar: {
|
||||||
|
title: {
|
||||||
|
text: '极坐标双数值轴'
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
data: ['line']
|
||||||
|
},
|
||||||
|
polar: {
|
||||||
|
center: ['50%', '54%']
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
axisPointer: {
|
||||||
|
type: 'cross'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
angleAxis: {
|
||||||
|
type: 'value',
|
||||||
|
startAngle: 0
|
||||||
|
},
|
||||||
|
radiusAxis: {
|
||||||
|
min: 0
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
coordinateSystem: 'polar',
|
||||||
|
name: 'line',
|
||||||
|
type: 'line',
|
||||||
|
showSymbol: false,
|
||||||
|
data: data
|
||||||
|
}
|
||||||
|
],
|
||||||
|
animationDuration: 2000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
|
查看[这里](https://github.com/Justineo/vue-echarts/tree/master/demo)了解更多例子。
|
||||||
|
|
||||||
|
### Props *(均为响应式)*
|
||||||
|
|
||||||
|
* `initOptions`
|
||||||
|
|
||||||
|
用来初始化 ECharts 实例。
|
||||||
|
|
||||||
|
* `theme`
|
||||||
|
|
||||||
|
当前 ECharts 实例使用的主题。
|
||||||
|
|
||||||
|
* `options`
|
||||||
|
|
||||||
|
ECharts 实例的数据。修改这个 prop 会触发 ECharts 实例的 `setOption` 方法。
|
||||||
|
|
||||||
|
* `group`
|
||||||
|
|
||||||
|
实例的分组,会自动绑定到 ECharts 组件的同名属性上。
|
||||||
|
|
||||||
|
* `auto-resize` (默认值:`false`)
|
||||||
|
|
||||||
|
这个 prop 用来指定 ECharts 实例在窗口尺寸变化时是否需要自动进行重绘。
|
||||||
|
|
||||||
|
* `watchShallow` (默认值:`false`)
|
||||||
|
|
||||||
|
这个 prop 可以用来关闭默认的对 `options` prop 的深度监听。对于有大量数据的图表,你可能会需要开启这个选项,来让 Vue 仅监听 `options` prop 本身的变化而忽略内部属性的变化。此时在需要重绘图表时,你需要重新设置 `options` prop 的直接引用,或者调用 `mergeOptions` 方法来手动管理图表内的数据(此时 `options` prop 的数据将不和图表内数据同步)。
|
||||||
|
|
||||||
|
### 计算属性
|
||||||
|
|
||||||
|
* `width` **[只读]**
|
||||||
|
|
||||||
|
用来获取 ECharts 实例的当前宽度。
|
||||||
|
|
||||||
|
* `height` **[只读]**
|
||||||
|
|
||||||
|
用来获取 ECharts 实例的当前高度。
|
||||||
|
|
||||||
|
* `computedOptions` **[只读]**
|
||||||
|
|
||||||
|
用来读取 ECharts 更新内部 `options` 后的实际数据。
|
||||||
|
|
||||||
|
### 方法
|
||||||
|
|
||||||
|
* `mergeOptions`(底层调用了 ECharts 实例的 `setOption` 方法)
|
||||||
|
|
||||||
|
*提供了一个更贴切的名称来描述 `setOption` 方法的实际行为。*
|
||||||
|
|
||||||
|
* `resize`
|
||||||
|
* `dispatchAction`
|
||||||
|
* `showLoading`
|
||||||
|
* `hideLoading`
|
||||||
|
* `convertToPixel`
|
||||||
|
* `convertFromPixel`
|
||||||
|
* `containPixel`
|
||||||
|
* `getDataURL`
|
||||||
|
* `getConnectedDataURL`
|
||||||
|
* `clear`
|
||||||
|
* `dispose`
|
||||||
|
|
||||||
|
### 静态方法
|
||||||
|
|
||||||
|
* `connect`
|
||||||
|
* `disconnect`
|
||||||
|
* `registerMap`
|
||||||
|
* `registerTheme`
|
||||||
|
|
||||||
|
### 事件
|
||||||
|
|
||||||
|
Vue-ECharts 支持如下事件:
|
||||||
|
|
||||||
|
* `legendselectchanged`
|
||||||
|
* `legendselected`
|
||||||
|
* `legendunselected`
|
||||||
|
* `datazoom`
|
||||||
|
* `datarangeselected`
|
||||||
|
* `timelinechanged`
|
||||||
|
* `timelineplaychanged`
|
||||||
|
* `restore`
|
||||||
|
* `dataviewchanged`
|
||||||
|
* `magictypechanged`
|
||||||
|
* `geoselectchanged`
|
||||||
|
* `geoselected`
|
||||||
|
* `geounselected`
|
||||||
|
* `pieselectchanged`
|
||||||
|
* `pieselected`
|
||||||
|
* `pieunselected`
|
||||||
|
* `mapselectchanged`
|
||||||
|
* `mapselected`
|
||||||
|
* `mapunselected`
|
||||||
|
* `axisareaselected`
|
||||||
|
* `focusnodeadjacency`
|
||||||
|
* `unfocusnodeadjacency`
|
||||||
|
* `brush`
|
||||||
|
* `brushselected`
|
||||||
|
* 鼠标事件
|
||||||
|
* `click`
|
||||||
|
* `dblclick`
|
||||||
|
* `mouseover`
|
||||||
|
* `mouseout`
|
||||||
|
* `mousedown`
|
||||||
|
* `mouseup`
|
||||||
|
* `globalout`
|
||||||
|
|
||||||
|
更多详细信息请参考 [ECharts 的 API 文档](https://ecomfe.github.io/echarts-doc/public/cn/api.html)。
|
||||||
|
|
||||||
|
## 本地开发
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ npm i
|
||||||
|
$ npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
打开 `http://localhost:8080/demo` 来查看 demo。
|
Reference in New Issue
Block a user