小規模以上のWebアプリ開発に使えるの?
Vue.jsはReactに比べると採用事例が少ないため、不安に思われる方もいると思います。
Reactの方がモダンじゃないの?大規模いけるの?設計どうするの?など、結構よく聞かれます。
基本的には「気をつけないと破綻はする」という認識ですが、実際にどう破綻するかはpotato4dさんの下記のスライドが参考になります。
hashrockの所感は下記の通りです。
まず「大規模」とはなんなのかを考える必要がある
大規模と一口に言っても、データフローが複雑なのか、単にコンテンツが多いだけなのかを区別するべき
「粒度を揃えずごちゃごちゃ書いていくと破綻する」というのは、Vueに限ったことではない
Vueはとにかく導入の敷居が低いライブラリ
チュートリアルどおりに進めることで、プロトタイプ作成までの業務はこなせる
小規模以上のWebアプリ作成には、コンポーネント化を進めることになる
現在のベストプラクティスは、Single File Component(SFCと呼んでいます)を採用すること。画面の部品化を進め、SFCをたくさん作ることになる
コンポーネントを作らずに進めると、dataが肥大化してあっという間に破綻する
コンポーネント化によってmethodよりcomputedの使い勝手が良くなる
SPAの場合はvue-routerの採用が一般的。画面遷移がある場合は初期から入れておくと良い
状態管理の複雑化を防ぐ為にvuexを採用することが多いが、なくてもOK(と思っているけど、最近この点は自信ない)
TypeScriptは入れておいて損はない。ただしvuexとの相性はあまり良くないと言われている
いずれにせよ、複数人で開発する場合はルールを設ける必要があり、自前ルールを一から作るよりはNuxtを採用してしまっていいかもしれない(筆者は詳しくない)
エディタやツールなどは?
vue-cliからテンプレートを作成するのが最速。
Single File Componentを使う上では、VSCodeにveturというプラグインを入れて編集すると、コードハイライトや補完などの支援を受けられる。
CSS周りはどうするの?
Single File Componentを使うとpostcssやlessやsassを利用可能
コンポーネント集を使いたい
bootstrapも普通に使うことが出来る