DOMイベントリスナー
注意:
ここではReactから提供されないDOMイベントの割り当て方法について説明します(詳細はこちら)。
これはjQueryのような他のライブラリと統合する場合に知っておくと良いでしょう。
ウインドウのサイズ変更を試してみましょう。
var Box = React.createClass({
getInitialState: function() {
return {windowWidth: window.innerWidth};
},
handleResize: function(e) {
this.setState({windowWidth: window.innerWidth});
},
componentDidMount: function() {
window.addEventListener('resize', this.handleResize);
},
componentWillUnmount: function() {
window.removeEventListener('resize', this.handleResize);
},
render: function() {
return <div>Current window width: {this.state.windowWidth}</div>;
}
});
React.render(<Box />, mountNode);
componentDidMount
は、コンポーネントがマウントされてDOM表現を得た後に呼び出されます。
多くのケースで、一般的なDOMイベントが割り当てられるのはここになります。
このイベントコールバックはReactのコンポーネントに反映されますが、オリジナルの要素には反映されないことに注意して下さい。 Reactは自動バインディングの処理を通して、 自動的に現在のコンポーネントのインスタンスにメソッドをバインドします。