読者です 読者をやめる 読者になる 読者になる

プログラミング 美徳の不幸

Ruby, Rails, JavaScriptなどのプログラミングまとめ、解説、備忘録。

vue.jsいいよ

いわゆるJavaScriptフレームワーク論争について僕なんかがいっちょまえなこというのもなんですが、vue.jsというフレームワークがミニマムで使いやすい。

仕事でBackbone.jsを使ったんですが、Backbone.js-Wayを貫こうとすると手続き的にたくさんのコンストラクタ関数を作る必要があって、辛い。

例えばあるレストランのリストがあって、そのリストランが追加されたり削除されたりすると右側に地図があって、その地図上に立ってるレストランのピンも出たり消えたり、番号がかわったり、中心座標かえたりする。

この程度だと案外がりがり書いてもなんとかなっちゃうと思うけど、Backbone.js使ったほうが見通しがよいとかなんとかいう巷の評判に流されてBackbone使ったらわりとめんどくさかった。
まず使用するモデルとしてRestaurantモデル、その集合であるRestaurantCollection, ビューはRestaurantView, RestaurantCollectionView, さらにMapView, MapAnnotation(model, 通し番号とかlat,lng), MapAnnotationCollection.....。

まぁ正直ここまでやらなくてもなんとかなる(例えばViewに関してはわりと混合させても問題ないと感じる)けど、collectionとmodelは分割したほうがいい。またMapAnnotationもRestaurantを一緒くたにしようと思えばできる。

しかしながら、やっぱりBackboneな流れとしてレストランを追加するのは
・DOMイベントをViewでハンドリング
・Viewがcollectionに新しいRestaurantを追加
・collectionにaddされたことを、Viewが購読して対応するRestaurantViewを描画

みたくすこしまどろっこしい。

この点view.jsはコンストラクタっぽいものはViewModelだけといってよく、それぞれのパーツがいっけん小さい機能しか持っていないのに強力な〜〜〜〜で、〜〜〜略


日本語のリソースがあまりないけど、ドキュメントが大きくないからBackboneに比べて困るということもないです。