Más contenido relacionado
Google Closure Toolsで作った大規模サービスにReactを導入した話
- 2. 自己紹介
• 天野 祐介 (@ama_ch)
• front-end developer
• サイボウズ株式会社
• kintone
- 4. React導入前
• UIはClosure Library + Closure Templatesで実装
• コンポーネント指向 (goog.ui.Component)
• Closure Compilerで型を保証
• 全体的にコードが長くなりがちでイベント制御などが
複雑
• サードパーティライブラリとの相性が悪い
- 7. • できる
• Closure Compilerではexternsというd.tsみた
いなファイルを渡すことでリネームから保護できる
• Reactのexternsがオープンソースで公開されてる
https://github.com/steida/react-externs
• 微妙に動かないところがあるから独自externsも書
いてる
- 11. OK
/**
* @param {Object} props
* @param {Object} context
* @constructor
* @extends {React.Component}
*/
sample.components.MyComponent = function(props, context) {
sample.components.MyComponent.base(this, 'constructor', props, context);
};
goog.inherits(sample.components.MyComponent, React.Component);
/**
* @param {string} name
* @return {string}
*/
sample.components.MyComponent.prototype.hello = function(name) {
return 'Hello, ' + name;
};
/** @override */
sample.components.MyComponent.prototype.render = function() {
var text = this.hello(1); // Error!
return (
<div>{text}</div>
);
};