2019/07/10【シューマイ】Tech Lead Engineerから最新技術を学べ!Vue.js編の勉強会に参加してきました!
2019/07/10(水)に【シューマイ】Tech Lead Engineerから最新技術を学べ!Vue.js編に参加しました。
そのときのメモです。
今日はこちらの勉強会に参加しています!
— まっつん/matsumana (@mtmn07384) July 10, 2019
vue.jsのお話、楽しみです☺https://t.co/adl5CqxKz2#shuuumai pic.twitter.com/KH4TryVTAY
Vue.jsのslotを活用した汎用的コンポーネント設計について
株式会社プラムザの鳩 洋子氏
ざっくり内容
Slotを使う動機
- コンポーネントの共通部分だけを共通化
- 必要なところだけをカスタマイズできる
- 特定の箇所をHTMLを記述して、コンポーネントを渡せる
- slotを使うと抽象度が高いコンポーネントが作れる
- 使用時もすっきりとかけるよ
Slotことはじめ
- Slotは?
Slot活用例
- モーダル
- SPAでは初期化が発生する
- 汎用的な処理は共通コンポーネントに
- タスクリスト
- UIパーツ
- 挙動が同じだけれども見た目がかなり違う
- 中身を変えればOK
UIフレームワーク
- UIフレームワークは、slotとscorped slotに基づいて作られている
- 理解していると使いやすいかも
- 例:Vuetify
Slotの注意点
- Vue.js2.6.0以降から新しいシンタックスになる
- Vue.jsの公式ドキュメントを見ていこう
質疑応答
- モブプロ会は奪い合い
- Vue.jsのslotのキャッチアップは大変ですか?
- 今日のスライドで使えるはず!
ひとこと感想
slot面白そう!
Vue/Vuexを限りなくReact/Redux風に書く話
外資系IT企業の高野 拓貴氏
ざっくり内容
趣味
- MatchLab
- 本棚が覗けるマッチングアプリ
typescriptFSA
- 洗練されている
- FSA(Flux Standard Action)
- Reduxが参照している非公式なコーディング規約(=半公式?)
- Actionとして用いるオブジェクトの型を設定
- type-script-fsaのactionCreator.async()が便利!
- 非同期の関数がはじまったとき、失敗したとき、成功したときを機械的に簡単に設定できる
- 要点
- ローディング状態とエラー状態をいい感じにしてくれる
- Vue.jsで書くとややこしめ
createAsyncAction
- Reduxと同じように書ける
- 読み込むimportが減らせる
まとめ
- FSAはアクションとして用いるオブジェクト型の非公式な規約
- typescript-fsaのactionCreator.async()が非同期アクションのローディング状態とエラーリングを管理がとても便利
- 同じ書き味でVuexでも単純な関数で書ける
- 高階層関数 createAsyncAction が便利
質疑応答
- 気になっている技術は?
- GRPC
- Vue.js/React.jsのかきわけは?
- 趣味はVue.js、仕事はReact.js
- 安全に書けるのがReact.jsのため、書きやすくて楽なのはVue.jsのため
ひとこと感想
よなよな資料を作られたそうですが、充実した内容でした。
- 安全に書けるのがReact.jsのため、書きやすくて楽なのはVue.jsのため
- 趣味はVue.js、仕事はReact.js
Vue.js書けるAtomic Desine -コンポーネント分割の指針-
GMOインターネット株式会社の成瀬 允宣氏
Vue.jsとAtomicDesignの関係
- 新規プロジェクトの立ち上げ
- Vue.js入れたい
- それに対してJQuey入れてもいいですか?という言葉
- 困った
- Vue.js入れたい
- 何故Vue.jsを使いたい?
- 人を動かすためのステップ
- やってみせ、言って聞かせて、させてみせ、褒めてやらねば、人は動かじ
- ひとつのページを分析
- ページを担当分けしてみんなでやってもらう
- データは親が責任持って変えないといけない
- 子がデータを変更して、親に渡してはいけない
- 褒めるタイミングはレビュー
- 指摘するだけがレビューじゃない!
- 慣れる前は細かい単位で
まとめ
- ひとつのページを分析
- やってみせ、言って聞かせて、させてみせ、褒めてやらねば、人は動かじ
- Atomic Designあるべきじゃなくていいよ
- 実践に道筋を立てることが大切
質疑応答
- Atom≠HTMLの最小単位という認識ですが、外すことはありますか?
- 同義になることがおおいけど、そうでないときもあります
- ボタンの中にアイコンが入る場合は?
- iconButtonにする
- Vue.jsでVuexかpagesでしたらどっち?
- vuexはメインじゃない
- 親にデータを渡して子は独立
- ログインとかは使う
- Vuexを使うとコンポーネント同士が対話できてしまう
- 使わない方が良さそう
- テストどの単位でやったほうがいいですか?
- 画面はテストをしようとちゃいけない
- テストをしないといけないViewは作るのはおかしい
- やるとしたらコンポーネント単位
- クイックイベントどこでハンドリングする?
- Organismsより上
- pagesがおすすめ
- axiosなどの非同期処理はpagesのみですか?
- ラップしてエラーや成功のコールバックだけ書くようにする
- promiseは人のマインドセットによる
ひとこと感想
技術をチームに反映させるには自分が動かないと、ですね!
懇親会
シューマイの勉強会ではシューマイが懇親会に出てくるという噂を聞いていましたが、本当でした…!
技術力不足を感じたので、がんばりたいと思います!