Skip to content

Instantly share code, notes, and snippets.

@lanqy
Forked from sebmarkbage/ReactCanvasDrawing.js
Created August 30, 2016 12:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lanqy/6662eb471e3f23a58e7692aa9a77965c to your computer and use it in GitHub Desktop.
Save lanqy/6662eb471e3f23a58e7692aa9a77965c to your computer and use it in GitHub Desktop.
Canvas Drawing Example
/** @jsx React.DOM */
var Graphic = React.createClass({
componentDidMount: function() {
var context = this.getDOMNode().getContext('2d');
this.paint(context);
},
componentDidUpdate: function() {
var context = this.getDOMNode().getContext('2d');
context.clearRect(0, 0, 200, 200);
this.paint(context);
},
paint: function(context) {
context.save();
context.translate(100, 100);
context.rotate(this.props.rotation, 100, 100);
context.fillStyle = '#F00';
context.fillRect(-50, -50, 100, 100);
context.restore();
},
render: function() {
return <canvas width={200} height={200} />;
}
});
var App = React.createClass({
getInitialState: function() {
return { rotation: 0 };
},
componentDidMount: function() {
requestAnimationFrame(this.tick);
},
tick: function() {
this.setState({ rotation: this.state.rotation + .01 });
requestAnimationFrame(this.tick);
},
render: function() {
return <div><Graphic rotation={this.state.rotation} /></div>
}
});
React.renderComponent(<App />, document.body);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment