Slide 1

Slide 1 text

How to development library for Vue 3 LINE Corporation Front-End Dev9 Team / Takuma HANATANI(@potato4d) 2021.05

Slide 2

Slide 2 text

5BLVNB)"/"5"/* 'SPOU&OE%FW5FBN.BOBHFS Relationship - 2018/02: Join Vue.js JP doc maintainer - 2018/12: Join LINE Corp. - 2019/12: LINE × Vue.js Core team - 2020/03: Join nuxt-community organization - 2021/05: Start Sponsoring Vue.js as LINE OSS - vue-fixed-header(deprecated) - nuxt-basic-auth-module - @nuxtjs/dayjs - nuxt-client-init-module 4FMG*OUSPEVDUJPO

Slide 3

Slide 3 text

7VFKT ͷϥΠϒϥϦ։ൃΛऔΓר͘؀ڥʹ͍ͭͯ ৽͘͠ 7VFKT ޲͚ͷϥΠϒϥϦΛ։ൃ͢Δ 7VF Y޲͚ͱ 7VF Y޲͚Λཱ྆͢Δʹ͸ ҠߦΛ΍Ίͨέʔε 1. 2. 3. 4. Contents

Slide 4

Slide 4 text

7VFKT ͷϥΠϒϥϦ։ൃΛऔΓר͘؀ڥʹ͍ͭͯ ৽͘͠ 7VFKT ޲͚ͷϥΠϒϥϦΛ։ൃ͢Δ 7VF Y޲͚ͱ 7VF Y޲͚Λཱ྆͢Δʹ͸ ҠߦΛ΍Ίͨέʔε 1. 2. 3. 4. Contents

Slide 5

Slide 5 text

7VF Yͱ 7VF Yͷར༻ঢ়گ https://www.npmtrends.com/

Slide 6

Slide 6 text

7VF Yͱ 7VF Yͷར༻ঢ়گ https://github.com/vuejs/rfcs/blob/master/active-rfcs/0038-vue3-ie11-support.md

Slide 7

Slide 7 text

7VF Yͱ 7VF Yͷར༻ঢ়گ https://github.com/vitejs/vite/tree/main/packages/plugin-vue

Slide 8

Slide 8 text

7VFKT ͷϥΠϒϥϦ։ൃΛऔΓר͘؀ڥʹ͍ͭͯ ৽͘͠ 7VFKT ޲͚ͷϥΠϒϥϦΛ։ൃ͢Δ 7VF Y޲͚ͱ 7VF Y޲͚Λཱ྆͢Δʹ͸ ҠߦΛ΍Ίͨέʔε 1. 2. 3. 4. Contents

Slide 9

Slide 9 text

7VF TVQQPSUJTPQUJPOBM

Slide 10

Slide 10 text

WVFEFNJ https://github.com/vueuse/vue-demi

Slide 11

Slide 11 text

/FXCVOEMFS7JUF https://vitejs.dev

Slide 12

Slide 12 text

%FWFMPQNFOU5FNQMBUFGPS7VF MJCSBSZ https://github.com/potato4d/vite-template-vue3-library

Slide 13

Slide 13 text

7VFKT ͷϥΠϒϥϦ։ൃΛऔΓר͘؀ڥʹ͍ͭͯ ৽͘͠ 7VFKT ޲͚ͷϥΠϒϥϦΛ։ൃ͢Δ 7VF Y޲͚ͱ 7VF Y޲͚Λཱ྆͢Δʹ͸ ҠߦΛ΍Ίͨέʔε 1. 2. 3. 4. Contents

Slide 14

Slide 14 text

-FBSOBCPVUCSFBLJOHDIBOHFT

Slide 15

Slide 15 text

-FBSOBCPVUCSFBLJOHDIBOHFT https://v3.vuejs.org/guide/migration/introduction.html

Slide 16

Slide 16 text

-FBSOBCPVUCSFBLJOHDIBOHFT https://v3.vuejs.org/guide/migration/fragments.html

Slide 17

Slide 17 text

-FBSOBCPVUCSFBLJOHDIBOHFT https://v3.vuejs.org/guide/migration/render-function-api.html

Slide 18

Slide 18 text

-FBSOBCPVUDPOWFSUFS

Slide 19

Slide 19 text

-FBSOBCPVUDPOUFSUFS https://github.com/vueuse/vue-demi

Slide 20

Slide 20 text

-FBSOBCPVUDPOUFSUFS TBD

Slide 21

Slide 21 text

.FDIBOJTNPGWVFEFNJ Vue3 import { reactive } from'v ue-demi' node_modules vue-demi Vue 3 Vue 2

Slide 22

Slide 22 text

.FDIBOJTNPGWVFEFNJ Vue3 import { reactive } from'v ue-demi' node_modules vue-demi Vue 3 Vue 2

Slide 23

Slide 23 text

θϩϕʔεͰ৽͍͠ύοέʔδͱͯ͠ߏ੒͠௚͢ .POPSFQP ͱͯ͠ϩδοΫΛ੾Γग़͢ ύοέʔδͷ੾Γग़͠ํ

Slide 24

Slide 24 text

θϩϕʔεͰύοέʔδͱͯ͠ߏங͠௚͢ ಛ௃ ɾθϩ͔Βߏங͢Δ͜ͱͰɺ׬શʹผͷίʔυϕʔεͱͯ͠؅ཧ͞ΕΔ ɾϦϦʔελΠϛϯάར༻͍ͯ͠ΔϏϧυπʔϧϥϯλΠϜશ͕ͯ෼͔ΕΔ ڧΈ ɾύοέʔδ໊͸ಉ͡··ɺϝδϟʔόʔδϣϯҧ͍΍ !OFYUͳͲΛ͚ͭ΍͍͢ ɾWVFJOͳͲ͸ !OFYUܗࣜΛ࠾༻͍ͯ͠Δ ɾ'SPOU&OE0QT؍఺Ͱͷྺ࢙΍ෛ࠴Λ࢒ͮ͠Β͍ ऑΈ ɾઐ༻ͷϩδοΫͳͲ͕ް͍৔߹ʹɺଟॏ؅ཧͷίετ͕ॏ͘ͷ͔͔͠Δ ɾڞ༗Ͱ͖ΔΑ͏ͳπʔϧνΣΠϯ͢Β΋ݸผͰ؅ཧ͢Δ͜ͱʹͳΔ ผ SFQPͳͲͰఏڙΛ࢝ΊΔ

Slide 25

Slide 25 text

.POPSFQP ͱͯ͠ϩδοΫΛ੾Γग़͢ ಛ௃ ɾίΞϩδοΫΛڞ༗ͯ͠ɺґଘπϦʔ͚ͩΛ੾Γ෼͚Δ ɾUFTUMJOUGPSNBUͳͲ͸ IPJTUͰڞ௨Խ͢Δ ڧΈ ɾߦ͍ͬͯΔܭࢉ΍ϩδοΫ͕ϔϏʔͳ৔߹ɺͦͷ؅ཧίετΛ࠷খԽͰ͖Δ ɾ+FTU΍&4-JOU1SFUUJFSͳͲͷߋ৽ίετ͸͔ͳΓ཈͑ΒΕΔ ऑΈ ɾಉҰύοέʔδ໊Λ࣋ͯͳ͍ͨΊɺWVFGPPCBSͷΑ͏ͳ໊લۭ͕ؒඞཁʹ ɾ໊લۭؒͷσϑΥϧτ͕ 7VFଆʹ͍ͨ͠৔߹ʹίετ͕ߴ͘ͳΔ -FSOB:BSO8PSLTQBDFͳͲͰղܾΛਤΔ

Slide 26

Slide 26 text

Core For v3 ͋Δࣾ಺ύοέʔδͷྫ import { Directive } from 'vue'; import { hook } from '../core'; const directive: Directive = { mounted: hook, updated: hook, }; export default directive; TBD export function hook() { // ... Main logic }

Slide 27

Slide 27 text

ͭͷύοέʔδΛ؅ཧ͢Δ৔߹͸ DPEFNPE ΋༗ޮ׆༻Ͱ͖Δ

Slide 28

Slide 28 text

7VFKT ͷϥΠϒϥϦ։ൃΛऔΓר͘؀ڥʹ͍ͭͯ ৽͘͠ 7VFKT ޲͚ͷϥΠϒϥϦΛ։ൃ͢Δ 7VF Y޲͚ͱ 7VF Y޲͚Λཱ྆͢Δʹ͸ ҠߦΛ΍Ίͨέʔε 1. 2. 3. 4. Contents

Slide 29

Slide 29 text

WVFGJYFEIFBEFS

Slide 30

Slide 30 text

3FOEFS'VODUJPOͷίʔυʹ͍ͭͯ

Slide 31

Slide 31 text

Code DOM WVFGJYFEIFBEFS͕ੜΈग़͢ %0.ʹ͍ͭͯ

Slide 32

Slide 32 text

Code DOM WVFGJYFEIFBEFS͕ੜΈग़͢ %0.ʹ͍ͭͯ

1. Fragment ΁ͷରԠ

Slide 33

Slide 33 text

Code DOM WVFGJYFEIFBEFS͕ੜΈग़͢ %0.ʹ͍ͭͯ

1. Fragment ΁ͷରԠ 2. Render Function

Slide 34

Slide 34 text

*&αϙʔτͷऴྃ https://github.com/vuejs/rfcs/blob/master/active-rfcs/0038-vue3-ie11-support.md

Slide 35

Slide 35 text

աڈΑΓ΋ະདྷΛ޲͍͍ͯ͜͏ ·ͱΊ • ݱঢ় 7VF Yͱ 7VF YΛಉ࣌ʹαϙʔτ͢Δ৔߹ɺ͍͔ͭ͘ͷબ୒ࢶ͕͋Δ • ύοέʔδଆͰશͯରԠ͢Δ WVFEFNJ WVFͳͲʹཔΔ ͲͪΒ͔ʹৼΓ੾Δ • ΋͠ 7VF ޲͚ʹύοέʔδΛ࡞Γ͍ͨͷʹɺ 7VF Y͕ؾ͕͔Γ͋Ε͹ɺ๨Εͯ΋ྑ͍ • ϢʔβʔଆͰͦͷࠩҟΛղফ͠ɺར༻͢Δखஈ͕ͳ͍Θ͚Ͱ͸ͳ͍ͨΊɻ • ৽͍͠Ձ஋Λఏڙ͢Δ͜ͱΛ༏ઌ͢Δ͜ͱ͕ɺ݁Ռతʹརӹʹͭͳ͕Δ͜ͱ΋͋Δ • ͲͪΒ΋αϙʔτ͢Δ৔߹͸ɺ͍͔ͭ͘ͷେ͖ͳҧ͍ΛؾΛ͚ͭΔͱྑ͍ • JOIFSJU"UUST ͷڍಈͷҧ͍΍ 3FOEFS'VODUJPOͳͲ͸ɺϥΠϒϥϦͰ΋ΞϓϦέʔγϣϯͰ΋ॏཁ • ઌʹ #SFBLJOH$IBOHFTʹ໨Λ௨ͨ͠ޙɺͲ͜·Ͱཱ྆Ͱ͖Δ͔Λௐ΂Α͏ • ྆ରԠ͕೉͍͠΋ͷ΋͋ΔͨΊɺͦ͜Ͱ͸ແཧ͠ͳ͍ • ੾Γ෼͚ΔߜΔ͜ͱ΋࣌ʹ͸ඞཁ