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
GraphQLクライアントの技術選定 2023冬
Search
KazukiHayase
November 17, 2023
Technology
7.9k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GraphQLクライアントの技術選定 2023冬
KazukiHayase
November 17, 2023
More Decks by KazukiHayase
See All by KazukiHayase
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
120
entのPrivacy機能とgo/astを使って、意図しないDBアクセスを防ぐ
kazukihayase
1
440
go testのキャッシュの仕組みにDeep Diveする
kazukihayase
0
180
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
610
CIでのgolangci-lintの実行を約90%削減した話
kazukihayase
0
560
もし今からGraphQLを採用するなら
kazukihayase
13
6k
Goでテストをしやすくするためにやったこと
kazukihayase
1
940
Introduction and Insights of the Hasura-based Architecture
kazukihayase
0
1.2k
自分だけが頑張るのをやめて、フルスタックなチームを作る
kazukihayase
2
3.7k
Other Decks in Technology
See All in Technology
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.3k
MIRU 2026 チュートリアル
keisuke198619
0
940
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
Apache Icebergインフラストラクチャ:ストレージ・カタログ・エンジンの選択肢とClouderaプラットフォームでの実装
tsugiyama
0
110
会社紹介資料 / Sansan Company Profile
sansan33
PRO
24
430k
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
6.1k
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
270
システム思考で問題に対処する
yussak
0
300
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
160
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
ハーレムエンジニアリング
kazuma777777
0
170
Bits AI を制するものは Datadog を制す / The player that controls Bits AI, controls Datadog
kaminashi
0
110
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
470
The Pragmatic Product Professional
lauravandoore
37
7.4k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
450
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
200
Faster Mobile Websites
deanohume
310
32k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Ruling the World: When Life Gets Gamed
codingconduct
0
300
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
770
A Soul's Torment
seathinner
6
3.4k
Transcript
GraphQLΫϥΠΞϯτͷٕज़બఆ 2023ౙ ϑϩϯτΤϯυΧϯϑΝϨϯεԭೄ2023 2023.11.18
ૣًʢ@KazukiHayaseʣ • 2021BuySell Technologies৽ଔೖࣾ • ग़ཧSaaSνʔϜ ϓϩδΣΫτϦʔμʔ • Go /
TypeScript / GraphQL / ։ൃੜ࢈ੑվળ
None
None
• GraphQLΫϥΠΞϯτͷٕज़બఆͷ؍ • GraphQLΫϥΠΞϯτͷհͱൺֱ ͢͜ͱ • GraphQLʹ͍ͭͯͷৄ͍͠આ໌ ͞ͳ͍͜ͱ
ΞδΣϯμ GraphQLʹ͍ͭͯ 01 ٕज़બఆͷ؍ 02 GraphQLΫϥΠΞϯτͷൺֱ 03 ۩ମతͳબఆࣄྫ 04
01 GraphQLʹ͍ͭͯ
• Meta͕։ൃͨ͠Web APIͷن֨ • APIͷ༷ΛεΩʔϚͰఆٛ • ΫϥΠΞϯτ͕ඞཁͳσʔλߏΛࢦఆͯ͠औಘՄೳ GraphQLͱ
• ॊೈͳσʔλϑΣον • ܕ͚͞ΕͨεΩʔϚ • ڧྗͳΤίγεςϜ • Fragment Colocation GraphQLͷϝϦοτ
• ॊೈͳσʔλϑΣον • ܕ͚͞ΕͨεΩʔϚ • ڧྗͳΤίγεςϜ • Fragment Colocation GraphQLͷϝϦοτ
ॊೈͳσʔλϑΣον
ॊೈͳσʔλϑΣον ඞཁͳσʔλͷΈΛ୯ҰͷϦΫΤετͰऔಘՄೳ ΦʔόʔϑΣον/ΞϯμʔϑΣονͷࢭ ϞόΠϧͳͲͷωοτϫʔΫͰߴʹಈ࡞
• ॊೈͳσʔλϑΣον • ܕ͚͞ΕͨεΩʔϚ • ڧྗͳΤίγεςϜ • Fragment Colocation GraphQLͷϝϦοτ
• υΩϡϝϯτͱ࣮ʹဃ͕ੜ·Εͳ͍ • εΩʔϚϑΝʔετͳ։ൃ • εΩʔϚΛݩʹͨ͠ίʔυͷࣗಈੜ ܕ͚͞ΕͨεΩʔϚ
• ॊೈͳσʔλϑΣον • ܕ͚͞ΕͨεΩʔϚ • ڧྗͳΤίγεςϜ • Fragment Colocation GraphQLͷϝϦοτ
• The GuildΛத৺ͱͨ͠ڧྗͳΤίγεςϜ • e.g. GraphQL Code Generator, GraphQL Mesh,
GraphQL ESLint ڧྗͳΤίγεςϜ
• ֤छGraphQLΫϥΠΞϯτΤίγεςϜͷॏཁͳཁૉ • ΩϟογϡػߏͳͲʹΑΓΠϯϑϥΛҰͰ͖Δ ڧྗͳΤίγεςϜ Apollo Client & Client-side Architecture
Basics
• ॊೈͳσʔλϑΣον • ܕ͚͞ΕͨεΩʔϚ • ڧྗͳΤίγεςϜ • Fragment Colocation GraphQLͷϝϦοτ
ίϯϙʔωϯτͷσʔλཁ݅Λ ίϯϙʔωϯτͷଆʹFragmentͰఆٛ͢Δઃܭࢥ Fragment Colocationͱ
Fragment Colocationͱ FragmentͱίϯϙʔωϯτΛಉҰϑΝΠϧʹఆٛ
Fragment Colocationͱ ίϯϙʔωϯτͱGraphQLͷ֊ߏ͕Ұக
σʔλཁ֤݅ίϯϙʔωϯτͰఆٛͭͭ͠ σʔλऔಘ୯ҰͷQueryʢϦΫΤετʣͰߦ͑Δ Fragment ColocationʹΑΔϝϦοτ
• ΦʔόʔϑΣονʹؾ͖͍ͮ͢ • मਖ਼࣌ͷӨڹൣғ͕ίϯϙʔωϯτʹด͍ͯ͡Δ • ߴڽूɾૄ݁߹ͳͷͰνʔϜλεΫΛׂ͍͢͠ Fragment ColocationʹΑΔϝϦοτ GraphQLͷϝϦοτΛ࠷େԽ͢ΔʹɺFragment Colocation͕ඞཁ
1. ίϯϙʔωϯτπϦʔશମͰඞཁͳσʔλΛ1ͭͷQueryͰఆٛ a. Queryมߋ࣌ͷӨڹൣғ͕͍ b. ࢠίϯϙʔωϯτͷमਖ਼͕ίϯϙʔωϯτʹӨڹ 2. ֤ίϯϙʔωϯτͰσʔλऔಘΛ࣮ߦ a. ΥʔλʔϑΥʔϧͷൃੜ
Fragment ColocationΛߦΘͳ͍߹
• The GuildFragment Colocationਪ͍ͯ͠Δ ◦ Unleash the power of Fragments
with GraphQL Codegen • GraphQL Code Generatorͷclient preset ◦ Fragment Masking͕σϑΥϧτͰ༗ޮ ◦ Fragment ColocationΛڧ੍͞ΕΔ ΤίγεςϜͷํੑ
React Server Componentsͷ಄ʹΑΔGraphQLͷඞཁੑ
RSCΛ͏͜ͱͰAPIϦΫΤετ͕αʔόʔͰ࣮ߦ͞Ε ΥʔλʔϑΥʔϧͷӨڹ͕গͳ͘ͳΔ React Server Componentsͷ಄ʹΑΔGraphQLͷඞཁੑ ֤ίϯϙʔωϯτͰAPIϦΫΤετΛߦ͏͜ͱͰ ֤ίϯϙʔωϯτͰσʔλཁ݅ͷఆٛͱऔಘͷ྆ํ͕ՄೳʹͳΔ
RSCͱGraphQLͷڞ௨ • ແବͳσʔλసૹͷݮʹΑΔύϑΥʔϚϯεͷ্ • ඇಉظσʔλసૹʹUXͷվળ ◦ GraphQLͷ@deferσΟϨΫςΟϒ ◦ RSCͷஈ֊తͳετϦʔϛϯά
ύϑΥʔϚϯεͱUXͷ؍ʹ͓͍ͯ GraphQL͕RSCͰஔ͖͑ΒΕΔϢʔεέʔεଘࡏ͢Δ
GraphQL͕༗ޮͳ໘ • SPAͷ߹ ◦ APIϦΫΤετΫϥΠΞϯτ͔Β࣮ߦ • RSCΑΓGraphQLͷํ͕ίεύ͕ྑ͍߹ ◦ RSCಋೖͷΠϯϑϥɾӡ༻ɾֶशίετߴ͍
02 ٕज़બఆͷ؍
• 📍 Fragment Colocation • ⚡ ܕͷࣗಈੜ • 🔨 Ωϟογϡػߏ
• 📝 ֶशίετ ٕज़બఆͷ؍
ύϑΥʔϚϯεͱ։ൃऀମݧͷ؍Ͱඞཁ ؍ • Fragment Colocationͷ࣮ͷ͢͠͞ • Fragment Colocationʹ͓͚ΔύϑΥʔϚϯεͷ࠷దԽ 📍 Fragment
Colocation
ܕ҆શੑͱҰ؏ੑͷ୲อʹඞཁ ؍ • Query/Mutation/Fragmentͷܕͷࣗಈੜ͕Ͱ͖Δ͔ ⚡ ܕͷࣗಈੜ
ωοτϫʔΫϦΫΤετͷ࠷దԽͷͨΊʹඞཁ ؍ • Ωϟογϡػߏͷ༗ແ • ΩϟογϡػߏͷΈ • Ωϟογϡͷѻ͍͢͞ 🔨 Ωϟογϡػߏ
։ൃੜ࢈ੑ্ͷͨΊʹඞཁ ؍ • ϥΠϒϥϦͷѻ͍͢͞ • υΩϡϝϯτใྔͷॆ࣮ੑ • ίϛϡχςΟͷ׆ൃ͞ 📝 ֶशίετ
03 GraphQLΫϥΠΞϯτͷൺֱ
• Relay • Apollo Client • urql • graphql-request GraphQLΫϥΠΞϯτͷൺֱ
GraphQLΫϥΠΞϯτͷൺֱ Relay Apollo Client urql graphql-request Fragment Colocation 🟢 🟡
🟡 🟡 ܕͷࣗಈੜ 🟢 🟢 🟢 🟢 Ωϟογϡػߏ 🟢 🟡 🟡 🔴 ֶशίετ 🔴 🟡 🟢 🟢
• Relay • Apollo Client • urql • graphql-request GraphQLΫϥΠΞϯτͷൺֱ
• ։ൃݩɿMeta • GitHub Starɿ18kʢ2023/11/12࣌ʣ • ࠾༻ࣄྫɿFacebookɺAtlassian Relay
• Relayͷࢥͱͯ͠Fragment ColocationΛॏཁࢹ • ࣗવͱFragment Colocationʹ४ڌ࣮ͨ͠ʹͳΔ ◦ Relay CompilerʹΑΔ࠷దͳQueryͷੜ ◦
Data MaskingʹΑΔσʔλͷΞΫηε੍ޚ ◦ Fragment scopedͳม 📍 Fragment Colocation - Relay
📍 Fragment Colocation - Relay Data MaskingʹΑΓఆٛͯ͠ͳ͍σʔλʹΞΫηεͰ͖ͳ͍
• ίϯύΠϥʢRelay CompilerʣΛแ • Relay Compiler͕TypeScriptʢ͘͠FlowʣͷܕΛࣗಈੜ ⚡ ܕͷࣗಈੜ - Relay
• σʔλΛਖ਼نԽͯ͠อ࣋͢ΔΩϟογϡػߏΛ࣋ͭ • Global Object IdentificationʹΑΔσʔλͷਖ਼نԽ ◦ άϩʔόϧʹҰҙͳIDΛఆ ◦ ͜ΕʹΑΓϦϑΣονΩϟογϡͷߋ৽͕࠷దԽ͞ΕΔ
🔨 Ωϟογϡػߏ - Relay
Ωϟογϡ͕ར༻͞ΕΔ߹ͷྫ • ಉ͡Queryͷ߹ • ҟͳΔQueryͰཁٻσʔλ͕Ωϟογϡʹଘࡏ͢Δ߹ 🔨 Ωϟογϡػߏ - Relay
• Ωϟογϡͷߋ৽Λݕͯ͠ίϯϙʔωϯτΛ࠶ϨϯμϦϯά • ࠶ϨϯμϦϯά࠷దԽ͞ΕΔ ◦ ֤ίϯϙʔωϯτͰఆٛͨ͠σʔλʹߋ৽͕͋ͬͨ߹ͷΈൃՐ ◦ πϦʔશମ͕࠶ϨϯμϦϯά͞ΕΔ͜ͱ͕ͳ͍ 🔨 Ωϟογϡػߏ
- Relay
• ߴ͍ • ಛʹຊޠͷใ͕গͳ͍ • GraphQLʹରͯ͠ͷशख़͕ٻΊΒΕΔ • ഁյతมߋ͕ଟ͍ͷͰै͕ඞཁ 📝 ֶशίετ
- Relay
• Meta͕։ൃ͍ͯ͠ΔͷͰReactͱͷ૬ੑ͕͍͍ ◦ React18ͷSuspenseͳͲਅͬઌʹରԠ͞Εͨ • Relay CompilerʹΑΔGraphQLͷ໋໊نଇͷڧ੍ • શମతʹGraphQLͷ༷ʹ४ڌ ͦͷଞͷಛ
- Relay
• Relay • Apollo Client • urql • graphql-request GraphQLΫϥΠΞϯτͷൺֱ
• ։ൃݩɿApollo Graph Inc. • GitHub Starɿ19kʢ2023/11/12࣌ʣ • ࠾༻ࣄྫɿMediumɺCircleCI Apollo
Client
• Apollo Client୯ମͰ͍͠ ◦ v3.8͔ΒuseFragment͕Stableʹͳ͕ͬͨɺॾʑͷػೳ͕Γͳ͍ҹ • GraphQL Code GeneratorΛซ༻͢Δ͜ͱͰ࣮ݱՄೳ ◦
client presetͷFragment MaskingʹΑΔσʔλͷΞΫηε੍ޚ ◦ ≒ RelayͷDataMasking 📍 Fragment Colocation - Apollo Client
📍 Fragment Colocation - Apollo Client
📍 Fragment Colocation - Apollo Client
• GraphQL Code GeneratorΛซ༻͢Δ͜ͱͰ࣮ݱՄೳ • TypedDocumentNodeʹΑΔܕਪ ◦ ܕ͚͞ΕͨDocumentNodeΦϒδΣΫτΛ࡞͢ΔͨΊͷ։ൃπʔϧ ◦ Apollo
ClientҎ֎ͷϥΠϒϥϦͰ༻Մೳ ⚡ ܕͷࣗಈੜ - Apollo Client
• σʔλΛਖ਼نԽͯ͠อ࣋͢ΔΩϟογϡػߏΛ࣋ͭ • ҰҙͳࣝผࢠͷੜʹΑΔσʔλͷਖ਼نԽ ◦ idͱ__typenameΛ݁߹ͨ͠Ωϟογϡ༻ͷࣝผࢠΛੜ 🔨 Ωϟογϡػߏ - Apollo
Client
Ωϟογϡ͕ར༻͞ΕΔ߹ͷྫ • ಉ͡Queryͷ߹ • ҟͳΔQueryͰཁٻσʔλ͕Ωϟογϡ͕ଘࡏ͢Δ߹ 🔨 Ωϟογϡػߏ - Apollo Client
• Ωϟογϡͷߋ৽Λݕͯ͠ίϯϙʔωϯτΛ࠶ϨϯμϦϯά • QueryΛ࣮ߦ͍ͯ͠Δίϯϙʔωϯτ͕࠶ϨϯμϦϯά͞ΕΔ ◦ Relayͱҧ͍πϦʔશମ͕࠶ϨϯμϦϯά͞ΕΔ 🔨 Ωϟογϡػߏ - Apollo
Client
• ී௨ • ίϛϡχςΟ͕׆ൃ • ຊޠͷใ͕ॆ࣮͍ͯ͠Δ • ใ͕๛ͳ໘ɺػೳଟ͍ 📝 ֶशίετ
- Apollo Client
• Apollo LinkͳͲͷपลϥΠϒϥϦ͕ॆ࣮͍ͯ͠Δ • Relayurqlͱൺͯ։ൃ͕Ε͍ͯΔ ◦ e.g. React18ͷSuspenseͷରԠ͕ະྃʢ2023/11/12࣌ʣ ͦͷଞͷಛ -
Apollo Client
• Relay • Apollo Client • urql • graphql-request GraphQLΫϥΠΞϯτͷൺֱ
• ։ൃݩɿFormidable • GitHub Starɿ8.2kʢ2023/11/12࣌ʣ • ࠾༻ࣄྫɿGitHubɺTripadvisor urql
• Apollo Clientͱಉ༷ • GraphQL Code GeneratorΛซ༻͢Δ͜ͱͰ࣮ݱՄೳ 📍 Fragment Colocation
- urql
• Apollo Clientͱಉ༷ • GraphQL Code GeneratorΛซ༻͢Δ͜ͱͰ࣮ݱՄೳ ⚡ ܕͷࣗಈੜ -
urql
• Document CacheͱݺΕΔΩϟογϡػߏΛ࣋ͭ • QueryͱVariablesͷΈ߹Θͤ͝ͱʹΩϟογϡΛอ࣋ 🔨 Ωϟογϡػߏ - urql
Ωϟογϡ͕ར༻͞ΕΔ߹ͷྫ • ಉ͡Queryͷ߹ 🔨 Ωϟογϡػߏ - urql
• Apollo Clientͱಉ༷ • Ωϟογϡͷߋ৽Λݕͯ͠ίϯϙʔωϯτΛ࠶ϨϯμϦϯά • QueryΛ࣮ߦ͍ͯ͠Δίϯϙʔωϯτ͕࠶ϨϯμϦϯά͞ΕΔ ◦ Relayͱҧ͍πϦʔશମ͕࠶ϨϯμϦϯά͞ΕΔ 🔨
Ωϟογϡػߏ - urql
• ਖ਼نԽ͞ΕͨΩϟογϡΛར༻͢Δ͜ͱՄೳ • ਖ਼نԽͷϩδοΫApollo Clientͱಉ༷ 🔨 Ωϟογϡػߏ - urql
• ͍ • ػೳ͕γϯϓϧͳͨΊɺΩϟονΞοϓ͕༰қ 📝 ֶशίετ - urql
• όϯυϧαΠζ͕খ͍͞ • ExchangeʹΑΔ֦ு͕Մೳ ◦ ≒ GraphQLͷϦΫΤετ/ϨεϙϯεΛॲཧ͢ΔͨΊͷϛυϧΣΞ ͦͷଞͷಛ - urql
• Relay • Apollo Client • urql • graphql-request GraphQLΫϥΠΞϯτͷൺֱ
• ։ൃݩɿJason Kuhrtࢯ • GitHub Starɿ5.5kʢ2023/11/12࣌ʣ • ࠾༻ࣄྫɿஶ໊ͳاۀͰͳ͠ graphql-request
• Apollo Clientͱಉ༷ • GraphQL Code GeneratorΛซ༻͢Δ͜ͱͰ࣮ݱՄೳ 📍 Fragment Colocation
- graphql-request
• Apollo Clientͱಉ༷ • GraphQL Code GeneratorΛซ༻͢Δ͜ͱͰ࣮ݱՄೳ ⚡ ܕͷࣗಈੜ -
graphql-request
• ࣋ͨͳ͍ 🔨 Ωϟογϡػߏ - graphql-request
• ۃΊ͍ͯ • ࠷ݶͷػೳ͔͠උ͍͑ͯͳ͍ 📝 ֶशίετ - graphql-request
• ඇৗʹγϯϓϧͰܰྔ ͦͷଞͷಛ - graphql-request
GraphQLΫϥΠΞϯτͷൺֱ Relay Apollo Client urql graphql-request Fragment Colocation 🟢 🟡
🟡 🟡 ܕͷࣗಈੜ 🟢 🟢 🟢 🟢 Ωϟογϡػߏ 🟢 🟡 🟡 🔴 ֶशίετ 🔴 🟡 🟢 🟢
• Ωϟογϡػߏ͕ෆཁͳΒgraphql-request • Ωϟογϡػߏ͕ඞཁͳΒRelay or Apollo Client or urql ͲΕΛ࠾༻͢Ε͍͍͔ʁ
• ୈҰީิͱͯ͠Relay • ࣍ͰApollo Client or urql Ωϟογϡػߏ͕ඞཁͳ߹
ͳ͔ͥʁ
GraphQLಋೖͷҰ൪ͷత ωοτϫʔΫτϥϑΟοΫͷ࠷దԽʹΑΔύϑΥʔϚϯεͱUXͷ্
• Fragment Colocationͷ࠾༻͕ඞਢ • ͦͷࢥʹैͬͯ࠷దԽ͞Ε͍ͯΔͷݱঢ়ͰRelayͷΈ • ֶशίετߴ͍͕ɺͦΕʹݟ߹͏Ϧλʔϯେ͍ʹ͋Δ ωοτϫʔΫτϥϑΟοΫͷ࠷దԽʹ͓͍ͯ
• Apollo ClientͰ͍͍ͨػೳ͕ͳ͍ͳΒurql ◦ ࣮ݱ͍ͨ͜͠ͱʹରͯ͠Apollo ClientΦʔόʔͳέʔε͕ଟ͍ ◦ େମͷϢʔεέʔεurqlΧόʔͰ͖Δ • Apollo
Clientͷෳࡶ͞ނͷ͋Δ ◦ όʔδϣϯΞοϓʹ͏ΩϟογϡपΓσάϨ ◦ ReactͷैͷΕ Apollo Client ͱ urql
04 ۩ମతͳબఆࣄྫ
۩ମతͳબఆࣄྫ ग़ཧSaaSνʔϜͰApollo ClientΛ࠾༻
• ϓϩμΫτͷཁ݅తʹΩϟογϡػߏඞཁ • GraphQLࣗମ͕ॳΊͯͩͬͨͷ͋Γಋೖͷ͢͠͞Λ༏ઌ • ࣌࠾༻ࣄྫগͳ͔ͬͨͷ͋Γurqlͷ࠾༻ݟૹΓ બఆཧ༝
• ಋೖεϜʔζͰ։ൃॳظͳ͔ͬͨ • ։ൃ͕ਐΉʹͭΕ͕ͯൃੜ ◦ ΩϟογϡपΓͷෆ۩߹ ◦ Fragment Colocationͷڧ੍͕Ͱ͖ͳ͍ ◦
SuspenseͷରԠͷΕ ։ൃͯ͠Έͯ
• ్தͰRelayͷΓ͑ݕ౼͕ͨ͠அ೦ • αʔόʔ͕Global Object Identificationʹ४ڌͰ͖ͳ͔ͬͨ RelayͷΓ͑
• client presetҠߦͯ͠ɺFragment Colocationͷڧ੍ • ESLintͰ໋໊نଇͷϧʔϧՃ Apollo ClientΛ͍ଓ͚ΔํͰڥඋʹྗ
• HygenʹΑΔίϯϙʔωϯτͷܗͷੜ Apollo ClientΛ͍ଓ͚ΔํͰڥඋʹྗ
• v3.8ͰuseFragment͕Stableʹͳͬͨ ◦ Fragmentͷߋ৽ͷΈΛݕͯ͠࠶ϨϯμϦϯά ◦ SuspenseະରԠͰɺଞʹ੍͕͋ΔͷͰར༻·͍ͩ͠ • ͜ͷล͕ॆ࣮ͯ͘͠Ε࠾༻ͷ༏ઌ্͕͕Δ͔ʁ Apollo Clientͷࠓޙ
• GraphQLΛ࠷େݶ׆༻͢ΔʹFragment Colocation͕ॏཁ • ͦͷ؍ͰGraphQLΫϥΠΞϯτRelay͕͓͢͢Ί • ଞͷΫϥΠΞϯτͰ͍ۙମݧಘΒΕΔΑ͏ʹͳͬͯདྷͯΔ ·ͱΊ
THANK YOU