Adventarの11日目です。Permalinkここのところ、descjopの話というよりはOmの話が続いていますが、実際の所、ClojureScriptでアプリケーションを作るということは、Electronのレイヤー、Node.jsのレイヤー、ClojureScriptのレイヤー、Clojureのビルドまわりの設定レイヤー、そしてフロントエンドライブラリに関するレイヤーといったそれぞれのレイヤーを適切に設計し、それらを協調させることでアプリケーションが動作するということであります。Worldをカスタマイズしました。今回もちょこっとだけカスタマイズしてみます。前回作成したサンプルは、ボタンを押すと、HTMLが変化するというものでした。これはボタンも表示場所も含めて一つのルートコンポーネントに記述しており、拡張していくのには限界があります。そこで、今回は、Omのコンポーネントを使って部品化を進めてみましょう。コンポーネント向けの状態を定義まず、app-stateへ、コンポーネント用向けに状態を追加しておきます。下記のように変更してみてください。""}})):mini-componentというキーがマップに追加されています。この部分を更新するコンポーネントと、表示するコンポーネントを作ります。最小コンポーネントをつくってみるまずは、表示するコンポーネントから。以下のコードを追加してみましょう。)))この関数はOmコンポーネントを返す関数で、おそらく最も小さいOmコンポーネントです。受け取ったカーソルにある:messageを表示する以外なにもしません。om/componentというのは、Omで用意されているマクロで、実際には下記のように書いたのと同義になります。"ミニミニコンポーネント!")))))om/componentのコードは以下のように定義されています。続いて、mount-rootを編集します。state))が、追加されたコードになります。om/buildは、コンポーネントを任意の場所に生成する関数です。第1引数には、IRenderやIRenderStateインターフェースを実装したインスタンスを返す関数を渡します。Omのコンポーネントというのは、これらのインターフェースを実装したインスタンスを返す関数というわけです。第2引数で、ここで、app-stateの:mini-component以下をカーソルとして渡しているのがわかると思います。これで、アプリケーションを実行すると、ミニミニコンポーネント!と書かれたpタグ要素が出力されたのがわかると思います。明日は、ボタンコンポーネントを作ります。Archivesvol.1222016-2-01Cover台湾に行ってきました。今回のカバーは、台湾にて撮影したものです。Niteの年末イベントShiftでやっているセッションにデザイントレンドというのがあります。Niteの年末イベントShiftでやっているセッションにデザイントレンドというのがあります。GK.vol.1202016-1-14Cover今回のカバーも、初詣に行ったときのショットです。GK.vol.1192016-1-10Cover今回のカバーは、初詣に行ったときのショット。遊ぼう」というのは年末にやったアドベントカレンダーのシリーズなのですが、前段としてまずはその解説をば。DevDaysのイベントをお手伝いしたときの窓からのショット。2015先週末に行ってきた開発合宿について書きました。