Facebook製リアクティブプログラミングライブラリ React を試してみた + 感想

これ facebook/react https://github.com/facebook/react

使ってみる

サンプルそぎ落として、最小構成で組んでみた

gist8208430

モジュール定義 -> 引数をJavaScriptで受け取って処理 -> renderという流れ。jsxという拡張子はjavascriptxmlリテラルを追加したものっぽい。(この拡張子かぶりすぎてるので本当にやめてほしい)

render毎にDOM構築してるから激しくパフォーマンス悪いのでは… と思ったら次のような記事があった。

Performance Calendar » React’s diff algorithm http://calendar.perfplanet.com/2013/diff/

どうも毎回innerHTMLで突っ込むんじゃなくて、既にrender済みのものはスキップして最適化している模様。生テキスト => DOMの変換を気にしなくても良いようだ。。

雑感

GoogleのPolymerに対抗したWebComponent実装例のようにみえる。

Welcome - Polymer http://www.polymer-project.org/

WebComponent実装してみよう -> しかし文字列とDOM変換コストが現実的ではない -> じゃあ独自記法の上に賢いdiffアルゴリズム載せて最適化しよう!みたいなライブラリにみえる。

このdiffアルゴリズムが売りで、独自記法ってところが筋悪っぽい。こんなの入れたら絶対標準化できないじゃん…。

正直これ単独だといかんともしがたい感が高い。おそらくFacebookとしてはこの上に築かれるライブラリに期待しているんだろうが、既にReact自体が巨大なのでなんともより難い雰囲気がある。独自のロックインも多いし…