Vue.jsのmeetupに行ってきた。会場は株式会社プレイド。Vue.js単体の勉強会というのは珍しいので、Vue.jsを使っている身としては行かざる終えない。
会場はカウンターがあったりしてとてもおしゃれで良かった。
以下気になった発表と感想。
8分でわかるVue.js
@hashedrockさんの発表。スライドはWebになかった。 2016/06/01 発見
最初のつかみでReactとSPAのことは忘れるといっていたのがおもしろかった。
初心者向けの発表と言うことでVue.jsの良さを8分で解説していた。Vue.jsはノリてきな役割というのを強調していてたのがおもしろかった。凄そうなところは他のライブラリに任せてそれと他のものを繋ぐのがVue.jsの役割とのこと。たしかにノリっぽい。
何故Vue.jsなのかというところで、作者自身がデザイナーと開発者のハイブリットということで何でもかんでもJSでやりたいわけじゃないから使うんだというところがなるほどなと思わせてくれた。
ViewModelのダイエット Messangerパターン
@kitakさんの発表。MVVMとMessageパターンについて。これもスライド見つからず。 2016/06/01 発見
まずMVVMについて知ることが大事とのこと。MVVMについては@ugaya40さんが書いているブログ記事などを参考にすると良いとのこと。
ダイアログのように出てきたり消えたりする状態をViewModel内にもつとViewModelが肥大化して厳しいとのこと。終わったらすぐ消失すべき状態をViewModelが持つべきではない。
そこでそれを解決するためにMessengerパターンが有効とのこと。その件に関してはMVVMの資料を探せば出てくる。これをVueでやる場合はカスタムディレクティブにそれを書くことで解決するとのこと。
出てきたり消えたりする情報をViewModel内にもつのはなんか違うと思っていただけに、それを解決する方法があると知れて良かった。Messengerパターンは調べておきたい。
翻訳からはじまるVue.js
@hypermktさんの発表。vue-validatorのドキュメントの翻訳を通してVue.jsに貢献した話。
貢献したいという気持ちからドキュメントの翻訳をしたというお話だった。ライブラリを使ったことがなくても翻訳は出来るとか、text-lintをつかえば翻訳しやすいというのがわかっておもしろかった。かなり大変そうな作業だが、いろいろ工夫して翻訳を完了されたのですごい。
作者である Evan さんとのQ&A
今回のイベント最大の目玉であるフレームワーク作者のEvanさんとのSkypeでのQ&Aがとてもおもしろかった。以下@hashedrockさんが投稿していたのを抜粋してみる。
Q:特定の子のみにbroadcastするようなことは可能か A:VueのインターフェースはNodeのeventemmiterを使用している。孫がlistenする方針。詳しくはissueへ #vmeetjp1
— hashrock (@hashedrock) 2016年5月31日
2.0のステート。Vue coreと色々なモジュールを疎結合に開発していくのがVue.jsのコンセプト。coreは出来上がっているが周辺モジュールがまだ #vmeetjp1
— hashrock (@hashedrock) 2016年5月31日
今後の開発について。スポンサーがついてきている。個人で会社を立ち上げるプランがある。Vue.jsの将来については心配ないよ :-) とのこと #vmeetjp1
— hashrock (@hashedrock) 2016年5月31日
Q: Reactなどに比べて、Vue.jsを選ぶ強い理由は? A: 2.0だと、覚えるのが簡単、開発者の確保がし易い。React/Reduxにはコミュニティやfacebookのバックグラウンドの利点があるが、Vue.jsも同じ利点を得つつある #vmeetjp1
— hashrock (@hashedrock) 2016年5月31日
もう一つ技術的なメリットはパフォーマンス。Reactは手動での最適化が難しいがVue.jsではネイティブで最適化が効く。 #vmeetjp1
— hashrock (@hashedrock) 2016年5月31日
現在のところWebWorkersを採用する予定はなし。すでに高速で60msec以内でUIを更新できている。 #vmeetjp1
— hashrock (@hashedrock) 2016年5月31日
2.0の頭文字はG、Gから始まるアニメは? #vmeetjp1
— hashrock (@hashedrock) 2016年5月31日
Q: AngularがTypeScriptを指向しているが、Vue.jsでは何かビルドシステムやAltJSなどを推奨する考えはありますか? #vmeetjp1
— hashrock (@hashedrock) 2016年5月31日
A: Vue.jsでは直接サポートはしないが、single file componentsでサポートする形にしている。 #vmeetjp1
— hashrock (@hashedrock) 2016年5月31日
自分で頑張って英語で質問してみたりした。質問した内容は「Vue 1.0では Evangerion だったが Vue 2.0 では何になるのでしょうか」という感じ。自分の英語力のくずさとSkypeごしで聞き取れなかったこともあり結局通訳していただいた。
答えはGではじまるアニメ映画とのこと。会場では答えが教えられていたけど、なんとなくここで書くのははばかられるのであえて書かない。でもわかる人はすぐわかる気がする。
個人的にReactやAngularは開発している会社のプロダクトに最適な物になるが、VueはVueを使っている人に最適になるようにしていくという答えがあったのがとても良かった。全体的にVueを使い続けても良さそうな雰囲気が感じられて安心した。
まとめ
Vue.js単体のイベントということでいろいろおもしろい話が聞けて楽しかった。Reactに比べるとあまり盛り上がっていないんじゃないかと思ったけどそうでないことがわかったので良かった。
立ち話でVue.jsをどうして導入したかというと、やはり使いやすいからという答えが何人かから得られたので、自分が使いやすいと思ったのは正しかったんだと認識できたのもよかった。
とても良いmeetupだったので次はぜひ発表する側に立ちたいと思った。