Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Reactivity Transform TechFeed Experts Night #2 2022.08.17 @kazupon
Slide 2
Slide 2 text
PLAID, inc. Vue.js Core Team Member Vue.js Japan User Group Organizer Creator of Vue I18n & Intlify @kazu_pon kazupon kazupon
Slide 3
Slide 3 text
Vue Fes Japan Online 2022
Slide 4
Slide 4 text
ࠓ͢͜ͱ • Reactivity Transform ʹ͍ͭͯ • ·࣮ͩݧతػೳͳͷͰࠓޙมΘΔ Մೳੑ͕͋Δ͔
Slide 5
Slide 5 text
Reactivity Transform
Slide 6
Slide 6 text
Reactivity Transform ͱ? • ίϯύΠϥϚΫϩΛͬͯ Composition API ͷϦΞΫςΟϒ पΓͷΛղܾ͢ΔͨΊͷͷ • Ґஔ͚ͮͱͯ͠ Composition API ͷ DX Λվળ͢ΔͨΊʹੜ·Εͨ
Slide 7
Slide 7 text
ఏڙ͞ΕΔίϯύΠϥϚΫϩ • `$` ͰϓϦϑΟοΫε͞ΕͨίϯύΠϥϚΫϩ܊ • $ref() • $computed() • $shallowRef() • $customRef() • $toRef() • $() • $$()
Slide 8
Slide 8 text
ఏڙ͞ΕΔίϯύΠϥϚΫϩ • `$` ͰϓϦϑΟοΫε͞ΕͨίϯύΠϥϚΫϩ܊ • $ref() • $computed() • $shallowRef() • $customRef() • $toRef() • $() • $$() Composition API ͷ ϦΞΫςΟϏςΟؔ࿈APIʹ ରԠ͢ΔϚΫϩ
Slide 9
Slide 9 text
ఏڙ͞ΕΔίϯύΠϥϚΫϩ • `$` ͰϓϦϑΟοΫε͞ΕͨίϯύΠϥϚΫϩ܊ • $ref() • $computed() • $shallowRef() • $customRef() • $toRef() • $() • $$() Composition API ͷ ϦΞΫςΟϏςΟؔ࿈APIʹ ରԠ͢ΔϚΫϩ ϦΞΫςΟϏςΟपΓͷৼΔ͍ ΛऔΓѻ͏ϚΫϩ
Slide 10
Slide 10 text
ٕज़తʹͲ͏ͳͬͯΔʁ • Babel ΛͬͯϚΫϩͰॻ͔Εͨ VueͷίʔυΛ AST Λղੳͯ͠ɺ ಈ͘JSίʔυʹม͍ͯ͠Δ • `@vue/reactivity-transform` ͱ͍͏ ύοέʔδͰॲཧ͞ΕΔ
Slide 11
Slide 11 text
ϦΞΫςΟϏςΟ पΓͷͱʁ
Slide 12
Slide 12 text
ref ͱ reactive ͷ औΓѻ͍͕͍͠
Slide 13
Slide 13 text
reactive ͱ ref ͷऔΓѻ͍͕͍͠ • reactive: • ΦϒδΣΫτσʔ λߏ • number string ͳͲͷϓϦϛςΟ ϒͳॲཧͰ͖ ͳ͍
Slide 14
Slide 14 text
reactive ͱ ref ͷऔΓѻ͍͕͍͠ • ref: • ϓϦϛςΟϒͳ Λѻ͍Մೳ • ΦϒδΣΫτՄ ೳ • `.value` ͰΞΫηε ͠ͳ͍ͱ͍͚ͳ͍
Slide 15
Slide 15 text
ΛׂೖͰऔ Γѻ͏ͷ͕͍͠
Slide 16
Slide 16 text
ΛׂೖͰऔΓѻ͏ͷ͕͍͠
Slide 17
Slide 17 text
ΛׂೖͰऔΓѻ͏ͷ͕͍͠
Slide 18
Slide 18 text
Props ͷσϑΥϧτ ఆٛํ๏
Slide 19
Slide 19 text
Props ͷσϑΥϧτఆٛํ๏
Slide 20
Slide 20 text
Reactivity Transform Λ͏ͱ…
Slide 21
Slide 21 text
ref ͱ reactive ͷ औΓѻ͍͕͍͠ ͱ͍͏ʹରͯ͠…
Slide 22
Slide 22 text
ref ܥΛ͍͍͑Α͏ʹͳΔ ίϯύΠϧલ ίϯύΠϧޙ e.g. `$ref` Λͬͨέʔε
Slide 23
Slide 23 text
ΛׂೖͰऔ Γѻ͏ͷ͕͍͠ ͱ͍͏ʹରͯ͠…
Slide 24
Slide 24 text
ׂೖ͕ؾܰʹ͑ΔΑ͏ʹͳΔ ίϯύΠϧલ ίϯύΠϧޙ
Slide 25
Slide 25 text
ׂೖ͕ؾܰʹ͑ΔΑ͏ʹͳΔ ίϯύΠϧલ ίϯύΠϧޙ
Slide 26
Slide 26 text
Props ͷσϑΥϧτ ఆٛํ๏ ͱ͍͏ʹରͯ͠…
Slide 27
Slide 27 text
Props ͷσϑΥϧτJSߏจͰఆٛՄೳ ίϯύΠϧલ ίϯύΠϧޙ
Slide 28
Slide 28 text
Reactivity Transform ͷҙ
Slide 29
Slide 29 text
ϦΞΫςΟϒͳมͷఆٛ
Slide 30
Slide 30 text
ϚΫϩͰఆٛͨ͠มΛؔʹ͢ͱ͖ ref ͷҾΛ࣋ͭؔʹɺ ϚΫϩͰఆٛͨ͠ม ͢ͱಈ࡞͠ͳ͍… (TSڥͷ߹ܕΤϥʔ) `$$()` Ͱϥοϓ(Τεέʔϓ)ͯ͋͛͠Ε ίϯύΠϧ࣌ʹ ref ͷ··͞ΕΔ
Slide 31
Slide 31 text
ؔͰϚΫϩͰఆٛͨ͠มΛฦ͢ͱ͖
Slide 32
Slide 32 text
αϙʔτ͢Δ πʔϧ
Slide 33
Slide 33 text
ެࣜͰఏڙ͢Δπʔϧ • VS Code ֦ு • Volar • ESLint ϓϥάΠϯ • eslint-plugin-vue (ϧʔϧఏڙ༧ఆ) • όϯυϥ͚ϓϥάΠϯɾϩʔμʔ • Vite: `@vitejs/plugin-vue@^2.0.0` • Webpack: `vue-loader@^17.0.0`
Slide 34
Slide 34 text
·ͱΊ
Slide 35
Slide 35 text
·ͱΊ • Reactivity Transform ϦΞΫςΟϏςΟप ΓͷΛղܾ͢ΔͨΊͷͷ • ίϯύΠϥϚΫϩΛ͏͜ͱͰΛղܾ͢ Δ͜ͱ͕Ͱ͖Δ • ෭࡞༻͋ΔͷͰ͏ͱ͖ҙ͕ඞཁ • αϙʔτ͢Δπʔϧ͕ఏڙ͞ΕΔͷͰ͍ͬ ͠ΐʹ͏ͱ DX ΛߴΊΒΕΔ
Slide 36
Slide 36 text
Thanks!