Clojure ScriptのSPAフレームワークRe-frameと、WebVRのフレームワークA-Frameのお話

Clojure ScriptのSPAフレームワークRe-frameと、WebVRのフレームワークA-Frameのお話
追記: 情報が色々と古くなったため、2020年に書き直した版へのリンクを張っておきます。 この記事は VirtualDOM Advent Calendar 2014 - Qiita の初日です。 初日ということで、基調講演風に、Virtual DOMとはなにか、なぜ僕はこんな興奮しているのか!という話から。 Virtual DOMとはなにか 既存の概念で当てはめると、JavaScriptのMVC, MVW(Whatever)フレームワークのViewに位置します。が、その程度では終わりません。仮想DOMとは世界を革命する力であり、このjQueryのDOM操作で汚れきったフロントエンドを救う救世主なのです。 現時点で自分が知っている限りは、以下の実装を指します。 facebook/react 最も使われてるFacebookの実装 Matt-Esch/virtual-dom Altenative
最近フロントエンドでfacebook/reactをずっと使っている。世界的には一部のエンジニアの間で流行っているのだが、国内だとqiitaのタグ等を見てもどうも少ない。みんなもっと使うべきだと思うので、宣伝かねて意見をまとめてみる。 複雑化するデータバインドに対する懸念 MVWのVに対して思いを馳せると、だいたい次のことに行き着く。すなわち、「ある構造体の入力に対して、必ず一意なビューを生成したい」 {items: [1, 2, 3]} を入力とすると、 1, 2, 3のli要素になってほしい。これは単純な例だから問題に成り得ないように見えるが、アプリケーション全体の状態を一つのjsonとして定義し、 そこから常に0から組み立てればアプリケーションの健全性が確保できると考えたことはないだろうか? 現実の問題 UIのだいたいの状態は遷移で表現される。遷移の差分をプログラマが記述する。jQue
Land of Lispの作者が作っているClojureScriptのフレームワーク、WebFUIが面白い。僕がJS書くときによく使うPastaとよく似ているので盗めるところは盗みたい。 Clojure/conjでの動画 githubリポジトリ 状態 イミュータブルな辞書で状態を表現して、リファレンスを張り替えることで状態の遷移を行うところはPastaと共通。この方法はよくあるオブジェクト指向のMVCフレームワークで行われるミュータブルな辞書をその場で書き換える方法と比べて、 後で必要になるデータをcloneなしで取っておける.(もちろん必要ない物はGCされる) 同じ状態の時に必ず同じUIになることを保証できる. (上記に関連して、)アプリの状態をそのままサーバなりローカルストレージなりに突っ込んで、そこからUIを含め完全に状態を復元できる などの利点がある。 状態の辞書を作るのにパッチ(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く