チャットアプリを開発する機会がありました.そのたたき台となる基本的なチャットをつくるのに,せっかくなので使ったことのないKnockout.jsを使ってみました.
ソースコードはここ https://github.com/tsuwatch/knockoutjs-socket-node-chat
依存パッケージは以下.
package.json
"dependencies": {
"express": "~4.9.0",
"body-parser": "~1.8.1",
"cookie-parser": "~1.3.3",
"morgan": "~1.3.0",
"serve-favicon": "~2.1.3",
"debug": "~2.0.0",
"jade": "~1.6.0",
"stylus": "0.42.3",
"socket.io": "1.1.0"
}
Knockout.jsは3.2.0で,Node.jsはv0.10.32です.
数あるフロントエンドのフレームワークからKnockout.jsに決めた理由は,Angular.jsまで多機能である必要がなく,一番シンプルで学習コストが低くいと思ったからです.フレームワークの比較に関しては詳しい方が書かれている記事がたくさんありますので,そちらを読むのが良いと思います.
使ってみた個人的な印象としては,
- 自由度が高い
- 双方向バインディングだけ欲しいときに使える
- jQueryと併用できて便利(アニメーションを使ったバインドなどができるらしい)
- 大規模化すると結局複雑になっていきそう
今までは全部jQueryでやっていたけど,双方向バインディングはKnockout.js,その他はjQueryでやろうというコンセプトのように感じました.