「React.js meetup #1」に参加してLTしてきた

React.js meetup #1 に参加してきた。

参加者枠を大きく上回る応募のあった超人気イベントだったけど、@さんにReact.jsのこと色々おしえていただいた縁もありLT枠で出させていただいた。

初心者がRailsとReactを同時に勉強し始めたけど結構つらかった、という話。
とりあえず今回のLTまでにある程度の形まで持っていかなきゃ、と必死になったおかげでそこそこ頑張れたのでよかったw (LT駆動開発?)


他の方々の発表はどれもとても勉強になる内容で、聴けてよかった。
懇親会での@teppeisさんのFlowtypeの話、@koba04さんのライブコーディングもとても面白かった。


React.js、思っていた以上に多くの人たちが関心を持っているようだったし まだまだ勉強すべきことも多くて これからも注目していきたいなと思いました。
ありがとうございました!

自分メモ

  • React 概論 (@naoya_itoさん)
    • Reactの起源、思想
    • 「Viewを宣言的に記述」というのがポイント
    • 宣言されている通りにViewを全更新する、という中で実現手段としてのVirtual DOM
    • コンポーネント指向、データフローが明確、というところ重要なので意識しよう
    • 生産性というより可読性、保守性などを向上させるもの
  • react-rails (@hokacchaさん)
    • RailsでReact使うためのreact-railsの機能
    • キモはやはりServer Side Rendering
      • therubyracer(V8)推奨
      • レンダリング死ぬほど遅い、ってことはない
      • むしろRailsは他の部分で遅いところあること多いでしょ
    • Turbolinksとの共存
      • Turbolinksからのリクエストか否かでServerSideRenderingを切り替えると効率的!
      • RoutingはRailsに任せることができるし良いのでは
  • 10分で実装するFlux (@azu_reさん)
    • Store, Action, Component, ...
    • StackTraceで一方通行なデータの流れを確認できる
    • Flux理解するのは実装してみるのがいいよ!
  • mercury/mithril.js (@yosuke_furukawaさん)
    • Reactより速いらしいmercury/mithrilとは何なのか
    • 差分描画のアルゴリズム
    • mithril: 再描画の計算回数を力技で減らす
      • ネストされた非同期処理など最終タイミングだけ描画、というかんじ
      • 逐次的に再描画させたい場合は明示的に呼ぶ
    • mercury: VDOM treeの探索範囲を減らす
    • まとめ: Reactの性能に不満があればこのへんも試してみる価値あるかも
  • React/FluxでSPAを開発してぶちあたった問題 (@mizchiさん)
    • まずrealtimeでMarkdownからプレゼンにするツール紹介
    • 設計で直面した問題の数々
      • dangerouslySetHTMLでリアルタイムプレビューしていてブラウザが固まる
        • 結局自分でmd->React Elementにするものを開発した
      • その他にもパフォーマンス的な問題
        • componentWillUpdateでキャッシュ操作
      • JSXがJS寄りすぎてデザイナとの連携がつらかった
        • テンプレートエンジンも作ってしまった

LTはメモる余裕なかった