v1.0.1
omi-chart
Одинchart-xМетки выполняют визуализацию данных,omiа такжеchart.jsСильное благословение
Поддерживаемые графики
-
<chart-bar />
Гистограмма -
<chart-line />
линейный график -
<chart-scatter />
График рассеяния -
<chart-pie />
Круговая диаграмма -
<chart-doughnut />
кольцевая диаграмма -
<chart-radar />
Радарная диаграмма -
<chart-polar-area />
Полярная карта -
<chart-bubble />
пузырьковая диаграмма
пример онлайн-взаимодействия
- Bar charts
- Line charts
- Scatter charts
- Other charts
Установить
npm i omi-chart
Начать быстро
import 'omi-chart'
define('my-app', class extends WeElement {
install(){
this.chartData = {
labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
datasets: [{
label: '# of Votes',
data: [12, 19, 3, 5, 2, 3],
backgroundColor: '#f391a9',
borderColor: '#ef5b9c',
borderWidth: 1
}]
}
this.chartOptions = {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
}
render(props, data) {
return (
<div>
<chart-bar width={600} data={this.chartData} options={this.chartOptions} />
</div>
)
}
})
render(<my-app />, 'body')
Конкретные входящие параметры и форматы данных можно просмотретьдокументация chart.js.
принцип
Кода не так много, просто посмотрите на исходный код:
import { WeElement, define } from 'omi'
import Chart from 'chart.js'
class ChartBase extends WeElement {
receiveProps(props) {
this.chart.data = props.data
this.chart.options = props.options
this.chart.update()
}
render(props) {
return (
<div style={{ width: props.width + 'px', height: props.height + 'px' }}>
<canvas ref={(e) => { this.canvas = e }}>
</canvas>
</div>
)
}
}
define('chart-bar', class extends ChartBase {
installed() {
this.chart = new Chart(this.canvas.getContext('2d'), {
type: this.props.horizontal ? 'horizontalBar' : 'bar',
data: this.props.data,
options: this.props.options
})
}
})
define('chart-line', class extends ChartBase {
installed() {
this.chart = new Chart(this.canvas.getContext('2d'), {
type: 'line',
data: this.props.data,
options: this.props.options
})
}
})
define('chart-scatter', class extends ChartBase {
installed() {
this.chart = new Chart.Scatter(this.canvas.getContext('2d'), {
data: this.props.data,
options: this.props.options
})
}
})
Все диаграммы наследуются от ChartBase, который наследуется от WeElement. omi-chart будет создавать различные типы диаграмм на основе входящих реквизитов.
Что использует PRECHINGPROPS КУРКА ФУНКЦИИ.
receiveProps — функция ловушки срабатывает при обновлении родительского компонента.
Предупреждение: вскоре Omi будет поддерживать IE9 и все мобильные браузеры, так что следите за обновлениями.