Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to development library for Vue 3

How to development library for Vue 3

Vue 3 が正式リリースされて半年以上。未だに 2.x と 3.x が混在する状況は続いています。OSS の開発者としては、 v2 と v3 のどちらをサポートするべきか悩むことは多いでしょう。このセッションでは、Vue 3 時代の Vue.js 向けライブラリの開発方法と、 Vue 2.x 対応との両立について紹介します。Vue を支える新たな OSS が生まれるきっかけになれば幸いです。

花谷 拓磨 / LINE株式会社 Front-end Dev9チーム

※こちらは以下イベントで登壇した資料となります。
https://line.connpass.com/event/210163/
※動画リンクは後日掲載いたします。

LINE Developers

May 12, 2021
Tweet

More Decks by LINE Developers

Other Decks in Technology

Transcript

  1. How to development library for Vue 3 LINE Corporation Front-End

    Dev9 Team / Takuma HANATANI(@potato4d) 2021.05
  2. 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
  3. 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 }
  4. Code DOM WVFGJYFEIFBEFS͕ੜΈग़͢ %0.ʹ͍ͭͯ <FixedHeader> <header> <h1> <nav> <ul> …

    </ul> </nav> </header> </FixedHeader> <header class="vue-fixed-header" > <h1> <nav> <ul> … </ul> </nav> </header>
  5. Code DOM WVFGJYFEIFBEFS͕ੜΈग़͢ %0.ʹ͍ͭͯ <FixedHeader> <header> <h1> <nav> <ul> …

    </ul> </nav> </header> </FixedHeader> <header class="vue-fixed-header" > <h1> <nav> <ul> … </ul> </nav> </header> 1. Fragment ΁ͷରԠ
  6. Code DOM WVFGJYFEIFBEFS͕ੜΈग़͢ %0.ʹ͍ͭͯ <FixedHeader> <header> <h1> <nav> <ul> …

    </ul> </nav> </header> </FixedHeader> <header class="vue-fixed-header" > <h1> <nav> <ul> … </ul> </nav> </header> 1. Fragment ΁ͷରԠ 2. Render Function
  7. աڈΑΓ΋ະདྷΛ޲͍͍ͯ͜͏ ·ͱΊ • ݱঢ় 7VF Yͱ 7VF YΛಉ࣌ʹαϙʔτ͢Δ৔߹ɺ͍͔ͭ͘ͷબ୒ࢶ͕͋Δ • ύοέʔδଆͰશͯରԠ͢Δ

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