[Открытый код] Tencent Omi-chart официально выпущен

Omi Chart.js

v1.0.1

omi-chart

omi-chart

Одинchart-xМетки выполняют визуализацию данных,omiа такжеchart.jsСильное благословение


omi-chart

Поддерживаемые графики

  • <chart-bar />Гистограмма
  • <chart-line />линейный график
  • <chart-scatter />График рассеяния
  • <chart-pie />Круговая диаграмма
  • <chart-doughnut />кольцевая диаграмма
  • <chart-radar />Радарная диаграмма
  • <chart-polar-area />Полярная карта
  • <chart-bubble />пузырьковая диаграмма

пример онлайн-взаимодействия

Установить

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 и все мобильные браузеры, так что следите за обновлениями.

Star & Fork

→ Диаграмма Оми ←