ElevenBack の花谷拓磨(@potato4d)です。
2018年9月15日に、UUUM株式会社様にて Vue.js についての社内講習会を開催しました。
この講習会は JSLounge の一環となっていますが、ハンズオン形式ではなく、講演と質疑応答という形式での開催となりました。
行った講演と質疑応答について
当日は講演をベースとし、その上で相談したい内容があれば質疑応答にて吸収するという形で開催しました。
タイトルは「破綻しない Vue.js アプリケーション開発のために大切なこと / How to make a robust Vue.js application」となっており、当日のスライドは以下のようなものとなっています。
また、質疑応答は以下のようなものがありました。非常に多くの質問をいただいたので、一部のみ抜粋しています。
Q. Vuex を使うかどうかは「UIに関係するものかどうか」で判断するのが良いか?
A.私はそう考えています。基本的に Vue / Vuex はローカルステートを許容するため、その利点を活かして捨てやすい環境を作ることが大切だと考えています。
Q. Vuex をただの箱として使うことはアリなのか。ドメインレイヤを取り扱うものに必ず限定すべきか?
A. 基本的には後者の利用をすることを推奨します。しかし、非常に多くのコンポーネントに依存する場合など、 props がつらい場合は箱として使わざるを得ないこともあるかと思います。また、妥協とはなりますが、グローバルで使うモーダルの開閉状態なんかはどうしても Vuex に入ってしまうこともありますね。ただ、それ以外では許容しないほうが良いかと思います。
Q. Vuex のモジュールは面倒でも必ず切ったほうが良いか?
A.はい。最近の場合は Vue CLI v3 / Nuxt.js によって非常に快適にモジュールを分けることができるようになっているので、横着せずに作るのが良いかと思います。私も簡単なサンプルレポジトリなどではルートステートを持つこともありますが、それ以外では基本的にモジュールに切っています。ルートに置いて良いものを強いて言うとすれば、「ログインしているかどうか」のフラグあたりでしょうか。これはおそらくどのドメイン概念ともマッチしないので。
Q. Vue.js + TypeScript は一般的か?
A. Vue.js にある程度詳しく、かつモダンフロントエンドにもなれている人が多い現場では、 TypeScript を使っている例も多く見るようになってきました。が、そもそも Vue.js は JavaScript に詳しくない人も触ることが多いので、そういった意味では少数派かもしれません。ただ、熟練者に限定するとある程度普及していると言っても過言ではなさそうです。私は Vue.js + TypeScript の開発にまだ課題感を抱えているので、 TypeScript を使うのはコンポーネントに閉じた内部向け Vue ライブラリに限定することが多いです。
当日の様子
当日の講習の様子です。
Nuxt.jsビギナーズガイドの持ち込み
また、花谷が出版した「Nuxt.jsビギナーズガイド」も持ち込みました。
UUUM様も、近頃 Nuxt.js を採用するプロジェクトがでてきたということで、 Nuxt.js の需要の増加がみてとれます。
社内での講習会をご希望の企業様へ
JSLounge では、講演形式・ハンズオン形式を問わず、幅広い形式での講習会の開催を受け付けております。
講習会の開催をご希望のかたは、 ElevenBack のメールアドレスもしくは JSLounge 公式 Twitter アカウントより、お気軽にご連絡ください。
メールアドレス: info@elevenback.jp
Twitterアカウント: https://twitter.com/jslounge_info