Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Composition API時代の Pub/Subパターンでの状態管理
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
fuqda
October 28, 2023
Programming
4k
4
Share
Composition API時代の Pub/Subパターンでの状態管理
Vue Fes Japan 2023のLT登壇用の資料。
fuqda
October 28, 2023
More Decks by fuqda
See All by fuqda
RubyでPrettierを使ってみた
fuqda
0
370
RSpecによるOpen API自動テスト
fuqda
3
1.2k
OSSへの プルリクエスト作成の手引き
fuqda
1
330
Rails Girls Tokyo 13th Sponsor LT by STORES
fuqda
0
220
黒歴史リポジトリを使ったリファクタリング勉強法のススメ
fuqda
1
1.1k
OSS初心者がつまづきながらOSSマナーを学んでいく話
fuqda
4
3.4k
Ruby2.7の新機能で簡易版Rubyインタプリタを実装してみる
fuqda
0
620
カンファレンスで技術的お土産を 増やすために出来ることを考えた
fuqda
2
570
Other Decks in Programming
See All in Programming
KagglerがMixSeekを触ってみた
morim
0
360
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
320
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.3k
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
200
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.1k
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
3.9k
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
290
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
750
安いハードウェアでVulkan
fadis
1
870
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.2k
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
500
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
4
1.5k
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
698
190k
Automating Front-end Workflow
addyosmani
1370
200k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
First, design no harm
axbom
PRO
2
1.2k
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Amusing Abliteration
ianozsvald
1
150
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
160
Transcript
Composition API時代の Pub/Subパターンでの状態管理 Vue Fes Japan 2023 2023/10/28 @fuqda
<Profile U Frontend Developer@Paytner Inc4 U Vue Fes Japan2023 ボランティアスタッフ
<SNS U GitHub:@Shigeyuki-fukud6 U X(旧Twitter):@fuqda90 About me
目次 UX Pub/Sub概I HX 状態どこで持つか問0 'X Pub/Subで状態管理したい場 #X Vuex /
PiniaでやるべきかR BX Composition APIでPub/Subしてみた場 X まとめ
目次 Å Pub/Sub概要 2. 状態どこで持つか問F C Pub/Subで状態管理したい場" 4 Vuex /
Piniaでやるべきか$ b Composition APIでPub/Subしてみた場( ' まとめ
Pub/Sub概要 Pub/Sub Publisher(イベント発行者)が発行したイベントをEvent Broker(イベント仲介者)がルーティングして、 Subscriber(イベント購読者)に伝達するイベント駆動型アーキテクチャのデザインパターンのこと。 イベントA Publisher (イベント発行者) イベントB イベントC
イベントA Event Broker (イベント仲介者) Subscriber (イベント購読者) イベントB イベントC
目次 HR Pub/Sub概要 3. Pub/Subで状態管理したい場 'R Vuex / PiniaでやるべきかE R
Composition APIでPub/Subしてみた場 R まとめ 2. 状態どこで持つか問題
状態どこで持つか問題 原則、stateは親コンポーネントに寄せる ・基本的にバックエンド側と送受信する項目は、 親(/pages)コンポーネントのみ持つことを許可。 ・子(/pagesを構成するパーツ)コンポーネントには、 状態を持たない方がシンプルになる ・親や子にstateが点在すると保守性が悪化するので、 例外は許容しつつ基本は避けること /pages配下のコンポーネント
コンテナコンポーネント 各種フォーム用コンポーネント 〇〇連携 〇〇を連携解除 〇〇設定
目次 IT Pub/Sub概要 2. 状態どこで持つか問$ 4. Vuex / PiniaでやるべきかF 6T
Composition APIでPub/Subしてみた場 T まとめ qT Pub/Subで状態管理したい場面
Pub/Subで状態管理したい場面 コンポーネントがネストしている中で 子コンポーネントの UI操作をトリガーに モーダルを表示したい場面 親コンポーネント (/pages) で状態を持つ前提とすると モーダルの開閉フラグをネストしてるコンポーネント 間でバケツリレーするのはしんどい...
/pages配下のコンポーネント コンテナコンポーネント 各種フォーム用コンポーネント ボタンを押下 モーダルを表示 〇〇連携 〇〇を連携解除 〇〇設定
目次 DI Pub/Sub概要 2. 状態どこで持つか問" I Pub/Subで状態管理したい場面 4I Composition APIでPub/Subしてみた場Â
ÄI まとめ 4. Vuex / PiniaでやるべきかP
Vuex / Piniaでやるべきか? いきなり結論 Vuex / PiniaをComposition APIで 代替実装可能なので不要! ※導入するのは簡単だが、剥がすのは
かなりエネルギーが必要なので入れなくて済むなら 入れないほうが長期的に見た際に吉というのが所感
目次 @G Pub/Sub概要 2. 状態どこで持つか問 G Pub/Subで状態管理したい場面 4. Vuex /
Piniaでやるべきか? 6. まとめ 5. Composition APIでPub/Subしてみた場合
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードはこちら https://github.com/Shigeyuki-fukuda/nuxt-pub-sub-sample
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 今回の発表のComposition APIのPub / Subサンプルコードの概要
Composition APIでPub/Subしてみた場合 ※時間があったら... 今回のサンプルコードを使ったデモアプリを動かしてみる https://vue-fes-japan-2023-pub-sub-demo.netlify.app
目次 QU Pub/Sub概要 2. 状態どこで持つか問& #U Pub/Subで状態管理したい場面 4. Vuex /
Piniaでやるべきか? 5. Composition APIでPub/Subしてみた場合 6. まとめ
まとめ ・Composition APIをPub/Subパターンで実装することで モーダルの開閉をVuex / Piniaを使わず実装出来た ・今回のパターン以外でもネストしてるコンポーネントから 親コンポーネントの状態を更新する際にPub/Subパターン が便利なのでオススメ