JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://unpkg.com/mithril/mithril.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.0/Chart.bundle.min.js"></script>
Babel + JSX
function App() {
const config = {
type: 'line',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
datasets: [
{
label: '# of Votes',
data: [12, 19, 3, 5, 2, 3],
borderColor: 'rgb(255, 99, 132)',
fill: false
}
]
}
}
const oncreate = vnode => {
const ctx = vnode.dom.getContext('2d')
this.chart = new Chart(ctx, config)
}
const doDoubleData = e => {
config.data.datasets.forEach(ds => (
ds.data = ds.data.map(d => d * 2)
))
this.chart.update()
}
const view = _ => m('div',
m('canvas[width=400][height=400]', { oncreate }),
m('button', { onclick: doDoubleData }, 'Double data')
)
return { view }
}
m.mount(document.body, App)