Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Provide/Inject で TypeScript の恩恵を受ける方法
Search
SAW
September 25, 2024
Programming
200
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Provide/Inject で TypeScript の恩恵を受ける方法
Vue 勉強会 in 大阪 の発表資料です。
SAW
September 25, 2024
More Decks by SAW
See All by SAW
Makefile 入門
azuki
0
120
Effortless API Documentation with Scribe
azuki
0
110
Laravelで手軽にAPIドキュメントを生成する ― Scribe活用術
azuki
0
79
🪝 便利な Property Hooks を 使ってみよう 🪝
azuki
0
110
決済システム超初心者が Stripe に入門している話
azuki
0
180
React Hook Form と Zod によるフォームバリデーション
azuki
0
92
PHP で form-data を POST 以外のメソッドで受け取るには?
azuki
0
98
PHP で学ぶ OAuth 入門
azuki
2
1.5k
EditorConfig を使ってみよう
azuki
1
130
Other Decks in Programming
See All in Programming
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
contenteditable と日本語入力に向き合う
colorful12
0
200
sbt 2.0: takeoff
eed3si9n
0
160
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
APNsからLive Activityを開始する話
yumnumm
0
170
ChromeでローカルLLM
ryu1013
0
140
気持ちぃ〜角丸 Squircle
ryu1013
0
310
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
R8 の設定見直しでアプリサイズ削減
andpad
0
220
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.7k
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
A better future with KSS
kneath
240
18k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Transcript
1SPWJEF*OKFDUͰ5ZQF4DSJQUͷ ԸܙΛड͚Δํ๏ 7VFษڧձJOେࡕ 4"8
$(whoami) ࢯ໊Ճ౻फҰ ࡀ ϋϯυϧωʔϜ4"8 9 چ5XJUUFS !B[VLJ@FBUFS ؔͷ*5ΤϯδχΞίϛϡχςΟͷ͔͠୲ ࣗশ
େࡕࡏॅɾѪग़ ಘҙ8FCΞϓϦέʔγϣϯ։ൃ 7VF -BSBWFM ʮྫྷ͠த՚͡Ίͨ͠ʯฉ͘ͷʹ ʮྫྷ͠த՚ऴΘΓ·ͨ͠ʯฉ͔ͳ͍ͷ ͳͥͩΖ͏ ࠓͷ໎ݴ
ࢠଙͷίϯϙʔωϯτʹσʔλΛ͢ 7VF͔Β1SPWJEF*OKFDUͱ͍͏ػೳ͕Ճ ࢠଙͷίϯϙʔωϯτʹσʔλΛ͢߹ʹpropsͰόέπϦϨʔʹͳΔ 1SPWJEF*OKFDUΛར༻͢Δ͜ͱͰpropsͷόέπϦϨʔΛղফ ΞϓϦέʔγϣϯϨϕϧͰ1SPWJEFΛར༻͢Δ͜ͱͰ%*Λ࣮ݱ શͯͷίϯϙʔωϯτͰ*OKFDUΛ͢Δ͜ͱͰσʔλΛऔಘՄೳ ͋ΔίϯϙʔωϯτͰ1SPWJEFͨ͠߹ࢠଙͷίϯϙʔωϯτͰͷΈ*OKFDUՄೳ
1SPWJEF*OKFDUͷΠϝʔδ Header Layout Root Main Footer ArticleList ArticleEditor provide('user', me)
inject('user') inject()Մೳͳൣғ ઌͷίϯϙʔωϯτͰ provide()͢ΔσʔλΛొ ࢠଙͷίϯϙʔωϯτͰ inject()ͯ͠σʔλΛऔಘ
1SPWJEF*OKFDUͰ5ZQF4DSJQUͷԸܙΛड͚Δ Ωʔ͕จࣈྻͷ߹inject() ͷฦ٫ܕunknown inject()Ͱऔಘͨ͠σʔλͷܕΛࢦఆ͢ΔʹΩϟετ͕ඞཁ provide()ʹ͞ΕͨσʔλܕͱҟͳΔܕʹΩϟετͯ͠ΤϥʔʹͳΒͳ͍ ΩʔͷจࣈྻΛUZQP͍ͯͯ͠੩తղੳͰΤϥʔΛݕͰ͖ͳ͍ ΩʔʹInjectionKey<T>Λར༻͢Δ͜ͱͰܕใΛऔಘ inject()ͷฦ٫ܕT|undefinedʹͳΓΩϟετ͕ෆཁ ܕͷෆ߹ΩʔͷUZQPͳͲ͕͋Δ߹ʹ੩తղੳͷԸܙΛड͚ΒΕΔ
InjectionKey<T>ͷར༻ Layout Main ArticleEditor export const userInjectionKey = Symbol() as
InjectionKey<User>; import { userInjectionKey } from './InjectionKey'; const me: User = { name: 'Jack' }; provide(userInjectionKey, me); import { userInjectionKey } from './InjectionKey'; const me = inject(userInjectionKey); console.log(me?.name); Layout.vue ArticleEditor.vue InjectionKey.ts InjectionKey<User>ʹΩϟετͨ͠ SymbolΛFYQPSU inject()ͷฦ٫ܕ User|undefinedͱͳΔ
·ͱΊ 1SPWJEF*OKFDUʹ͍ͭͯͷ֓ཁΛઆ໌ 1SPWJEF*OKFDUͰ5ZQF4DSJQUͷԸܙΛड͚Δํ๏Λհ InjectionKey<T> ΛΩʔʹར༻͢Δ͜ͱͰ࣮ݱՄೳ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠