ð Vue Fes Japan Online 2022 / èŠãã»ãã·ã§ã³ã¡ã¢
äžæ¥ã»ãã·ã§ã³èŠã€ã€ã¡ã¢ãæ®ããã®ã§ãå人ããã°ã«æŸãæããŠããã
æ®Žãæžããªã®ã§äœã®æž æžãããŠãªããã誀åè±åããã§ãã¯ããŠãªãã§ãïŒïŒïŒ
Keynote | The Evolution of Vue / Evan You
https://vuefes.jp/2022/sessions/yyx990803
- 0.x系㮠Pre ããŒãžã§ã³æä»£ã®è©±
- ES5ã®ã¿ã®Featureãåæã«ããå¿ èŠããã£ã
- 1.0ã®ã³ãŒãããŒã ã£ãŠEvangelionã ã£ãã®ã..
- 2015-2016ã§ã®ã³ã¢ãªã©ã€ãã©ãªçŸ€ã®è¿œå ãå€ãã£ãããããVue Router ãšãVuex
- å€§èŠæš¡SPAã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ã®è§£æ±ºçã
- Vapor Mode
- Virtual DOM ãžã®äŸåããªã
- ããã©ãŒãã³ã¹ç¹åã§ã®ããªãã«ã
- ä»åŸ
- Vue2â3ã®ç§»è¡æãšããèªè
- 30%ã Vue3, 25%ã 2.7ããã
- Composition API ãš script setup 㯠50% è¶ ããŠãããã
- æ«ãã¯å€§ããªå€æŽããªãç¶æ ã§äœ¿ã£ãŠãããã倿Žããã£ãŠãæ¢åæ©èœã¯äœ¿ããç¶æ ã«ãã
- Resumable Hydration (Inspred Qwik)
çªç¶ Qwik ãåºãŠããŠãããããæªæ¥ã®æ°ããå§¿ããã©èŠãããŠãã
ã¡ããã¢ã®ãµãŒãã¹ã«ããããã¹ãæŠç¥ã®éå»ãšæªæ¥ / ã¡ããã¢æ ªåŒäŒç€Ÿ
https://vuefes.jp/2022/sponsor-sessions/medpeer
- kakari ãšãããµãŒãã¹ã®ãã¹ãæŠç¥
- Rails ã® MPA & ã¯ã©ã€ã¢ã³ãåŽã§ Vue ã® SPA ã®ãã€ããªãããªæ§æ
- Jestã§ã«ãã¬ããžã50%ä»¥äž â çŸåšã¯ã³ã³ããŒãã³ãæ°ãå以äžã§ã«ãã¬ããž60%åãçšåºŠ
- Storybookã§ã®éçºãšreg-suit
- ããStorybookã¯ããŸãéçšã«èŒããããç Žæ£ãããšã®ããš
- èšç»çãªãã¹ããããŒã«å°å ¥ã倧äºã ããšãã話ã ã£ã
StorybookãåŸã ç Žæ£ãããšããã®ã¯æ²ãã話ã§ãã£ãã ãã å°å ¥ããã®ã§ã¯ãªããéçšåšããšããŸã§èæ ®ããªããšäžæããããªãã®ããã ãã¹ããšã®ä¹é¢ããã£ããšã®ããšã ã£ããããã®ããã㯠composeStories ãšã䜿ããšå°ãã¯è»œæžã§ããã®ãããªããšããèããŠãã
Evan you ã«èãã
- Q: ä»FWãšæ¯èŒããå Žåã®Vue.jsã®è¯ã
- A: Vueãäžçª Approachableãããã¥ã¡ã³ãã®å å®ãããšã£ã€ãããããVueã«éŠŽæã¿ããªãã¡ã³ããŒã§ãåŠç¿ã³ã¹ããäœãæŠåã«ãªããã
- Q: ãããããŠãŒã¹ã±ãŒã¹ã§ã¯ Vue ããããããšããäŸã¯ããã
- A: ãŠãŒã¹ã±ãŒã¹ãããããªããããªå Žåã«ãšããããVueã䜿ãããšããã»ããããããããããã Progressiveãšããæå³ãšããŠãå°ããåããŠå€§ããããã Javaã§äœãããŠããããªã¢ããªã±ãŒã·ã§ã³ãšãã«ãã«ãã¹ããããªãã§å°å ¥ãã§ãããã å€§èŠæš¡ãªJavaScriptã¢ããªã±ãŒã·ã§ã³ã«ãå°å ¥ã§ãã
- Q: SFC ã§ JSX ã®ããã«è€æ° template ã倿°åããæªæ¥ã¯æ¥ããïŒ
- A: æè¡çã«ã¯å¯èœã§ãRFCã§Discussionãããããã ãSFCã®å Žåã¯åœ±é¿ã倧ããã Closedãªã·ã³ã¿ãã¯ã¹ã§äœã£ãŠåœ±é¿ãéããããã«ããã°æè¡çã«ã¯ã§ãããã å°æ¥çã«ãDiscussionã®äžã§æçšãªãŠãŒã¹ã±ãŒã¹ãåºãŠããã°å¯èœæ§ã¯ãããããã以äžã®åçã¯ã§ããªãã®ãçŸç¶ã
- Q: Options API ã¯ä»åŸããµããŒããããïŒ
- A: ããŸã®ãšãã倧ããªå€æŽã¯äºå®ããŠãªããOptions / Composition API äž¡æ¹ãã圢ã«èœã¡çããŠããã Options API ã«æ©èœã远å ãããªããšããè£åŽã§ã¯ Composition API ã¯äœ¿ãããŠããã ä»åŸãã°ãã㯠Options / Composition API ãšãã«å€§ããªå€æŽã¯äºå®ãããŠãªãã
- Q: ããã£ãŠããã¢ãã¡ã¯ãããŸããïŒ
- A: å®ã¯ã¢ãã¡ãããŸãã¿ãªããæŒ«ç»ã¯èªããåªè¡å»»æŠ
- Q: ä»äºãšOSSè²¢ç®ãäž¡ç«ããã³ãã¯ïŒ
- A: å®éVueãå§ãããšãã¯Googleã«ããŠãä»äºããªããOSSããã®ã¯ææªã®ã¯ãŒã¯ã©ã€ããã©ã³ã¹ãžã®è¿éã ãªãã®ããã«OSSããã£ãŠãã®ãã§ãã¯ãŒã¯ã©ã€ããã©ã³ã¹ã倧äºãªãè¶£å³ãšããŠãããšããã ã³ãã¥ããã£ã«ã¹ã¿ã³ã¹ããªãŒãã³ã«ããŠãããšæ°æã¡çã«ã楜ã«ãªãã ãã£ãªã¢ãæèããŠãã«ã¿ã€ã ã§ãããªããã¯ãŒã¯ã©ã€ããã©ã³ã¹ãç ç²ã«ããå¿ èŠãã§ãŠããã èªåã®äžã§OSSãäœã®ããã«ããã®ãïŒãææ¡ããŠãã£ãŠããã®ãéèŠã
- Q: Nuxt3ãæªã ã«RCããŒãžã§ã³ã ããVueã®LTSã«åœ±é¿ãäžããããšã¯ãããïŒ
- A: NuxtãVueãç¬èªã®ã¿ã€ã ã©ã€ã³ã§åããŠããŠãåºæ¬çã«ã¯é¢ä¿ã¯ãªãã Vue2ã¯æ¥å¹Žã®å¹Žæ«ãLTSãšã¢ããŠã³ã¹ããŠããŠãNuxtãšããåãããŠèª¿æŽãããªã©ãèããŠã¯ããªãã è£è¶³ãããšãExtend Support (å»¶é·ãµããŒã)ãšãããã©ã³ãèšç»ããŠãããããã¯ã¹ãã³ãµãŒäŒæ¥çåãã®æåãµããŒãã«ãªãã
- Q: ãã¶ã€ããŒã¯ã©ãOSSã«è²¢ç®ã§ããããããã¥ã¡ã³ã以å€ã§ã³ã³ããªãã¥ãŒãã§ãããïŒ
- A: éåžžã«è峿·±ã質åãããŸã®ãšããVueã«ãã¶ã€ã³ã«é¢ãã倧ããªããŒãºã¯ç¡ãã ããã¥ã¡ã³ãããªãã¶ã€ã³ã¯çµãã£ãŠãããã ãã€ã©ã¹ãã¬ãŒã·ã§ã³ããã£ãããããªããšãã話ã¯ããããã©ã³ãã£ã³ã°ãå«ãæ§ã ãªãã€ã¹ãããã£ãŠäžæŠè©±ã¯æµããã ãã¶ã€ã³ã¯é¡§å®¢äžå¿ã«ããŒãºãªã©ãèããŠå ¥ã£ãŠããå¿ èŠãããã ããããã¯ãã奜ãã§ãããããšã¯ããïŒããšèããŠã¿ãã®ã¯è¯ãã ãããªãããŽããã¶ã€ã³ããŠæããŠã¿ããªã©ã¯è¿·æã«ãªãããšãå€ãã ãããã¯ããæ±ããŠããããšãææ¡ããããšããã¹ããããèžãã®ã¯è¯ããšæãã
- Q: ViteãDenoã§åãããã«ãªã£ãŠããŠDenoãæŽãã€ã€ããããVueæ¬äœã§ãæºåããŠãããïŒ
- A: ããŸã®ãšããViteã§DenoãåããŠããªãåãã¯ãã ããSSRãããŒã«ãªãã Cloudflareã§åããŠãäŸãªã©ãèŠãããšããããããããåãã¯ãã
- Q: SolidJSã«ã€ã³ã¹ãã€ã¢ãããVaporãªã©ãä»åŸãµããŒãããé åãå¢ãããšãªãªãŒã¹ã«æéãããããªã©ã®åœ±é¿ããããããšãã£ãæžå¿µãããããã©ãèããŠãããïŒ
- A: åºæ¬ã¯èªç¶ãªæµãã ãšæã£ãŠããã©ã®ãããã¯ãã§ããŠãŒã¶ãŒãå¢ãããšéãåããªãã ããã·ã§ã³ã¯ãªãã£ã«ã«ãªéšåã§äœ¿ãããŠãã±ãŒã¹ãããã責任ãããã Vue2ããVue3ãžã®æ°ããæžãæ¹ã®ç޹ä»ã§ã®åå¿ããåŠãã ããšãããã ãªãªãŒã¹ã«å¯ŸããŠæ éã«ãªããããåŸãªãã®ã¯ããããªãšæããã人ãå°ãªããšããããã£ãçç±ã§é ããªã£ãŠããããã§ã¯ãªãã
- Q: äœãããªããVue.jsã«é§ãç«ãŠãã®ã§ãã
- A: æ ç±ãã¢ãããŒã·ã§ã³ã¯ãã§ãŒãºã«ãã£ãŠãå€ãã£ãŠããã æåã¯è¶£å³ã§ãæè¡çã«æ°ããããšããã£ãŠã¿ããã£ãã éäžãã Vue ã®èªç¥ãå¢ãããã£ãšå€§ããªãã®ã«ãªãããïŒãšããéå¿çãªæãããã£ãŠãã£ãŠããã ä»ã¯è²¬ä»»æãéåžžã«å€§ãããã³ãã¥ããã£ã®åŒ·åããªããã°Vueã¯ä»ã®å Žæã«ã¯ãªãã ä»ã®ç掻ãããã£ãŠãããšããã®ãããã 責任æãããããæè¡è ãšããŠæ°ããã¢ã€ãã¢ãèŠã€ãããªã©ãã©ã³ã¹ã«ãæ°ãã€ããŠãããä»Vueã«é¢ãããŠæ°ããææŠãã§ããŠããã®ã¯å¹žããªç¹ã
ãšã¢ãã£ãã ãã£ãªã¢æèãããªãã¯ãŒã¯ã©ã€ããã©ã³ã¹ãç ç²ã«ãã倿ããããããšèšã£ãŠãã®ã¯åŒ·ãã£ããåã 人ã§å€æãããªããããã«ãããã¢ãªããªã
è² åµãæºãŸã£ãã¬ã¬ã·ãŒããã³ããšã³ãç»é¢ã Vue.js ã§ãªãã¬ã€ã¹ãã話
https://vuefes.jp/2022/sessions/t0yohei
- 10幎åã«çãŸãã Rails + jQuery ã®ã¢ããªã±ãŒã·ã§ã³
- èŠãç®ãå€ãããã®ã«Railsãè§Šãå¿ èŠããããªã©ã®èª²é¡
- åªå
é äœã€ãã â å°æ¥çã«æ¹åå¯èœæ§ãé«ãç»é¢ãã
- 倿Žé »åºŠã¯ã¿ãªãããããŒå€æŽãªã©ã«ãã倿Žã®å¯èœæ§ããããã
- StorybookãVRTã«ããæ
ä¿
- äžæ¬ãªãã¬ã€ã¹ã®ãããE2Eã¯èæ ®ããå€ãã
- ããããã
- jQueryâVue.js (åœä»€çUIâ宣èšçUI)ã®çœ®ãæãã®é£ãã
- A/Bãã¹ãã®æ®éªžãªã©ã䜿ãããŠãããããããªãã³ãŒãããã
- å®ã¯å ã å£ããŠãå Žæ
- æ¬äœãªãªãŒã¹ã«å é§ããŠæŽçãã
- Container Component ã䜿ãçµ±å¶ãåã
- styleãæãããããã¯ãšã³ããšã®ããåãããã
- script ãæããªã Layout Component ã§æŽç
- ãã©ãããŠâŠïŒããšããã³ãŒãããã£ã
- HTMLãAPIã§è¿ã£ãŠãã¡ãã
- æ¢åã®APIã®ã¬ã¹ãã³ã¹ã«ãUIåŽã«å¶åŸ¡ãå§è²ããããã«å¿
èŠãªå€(äŸã ãšID)ã远å ããããšã§æ¢å圱é¿ãæžãã
- APIã¬ã¹ãã³ã¹ã«HTMLãæ®ã£ããŸãŸã«ãªããã©ããã®ãïŒ
- â å°æ¥çã«ç¬ç«åãæ€èšããäžæŠã¯OKãšãã圢ã§é²ãã
- ç®çãæç¢ºã«ããŠãããªãããšã決ããã®ãå€§äº + ãããªãããš
JSããTSãžç§»è¡ããVue.jsãããã¯ãã®åãã§ãã¯ã挞é²çã«åŒ·åãã
https://vuefes.jp/2022/sessions/kawamataryo
- TSåãäžå®å šãªVue.jsãããã¯ãã®åãã§ãã¯ãã©ã匷åããŠããã
- TS & Vue ã®æŽå²ãšçŸå Žã®è©±ãä»ã¯Vue.jsã®TS察å¿ã¯å å®ããŠã
- LAPRAS ⊠Django & Vue.jsãVue.js SFC ã 680ãã¡ã€ã«ãTS 750ãã¡ã€ã«ã»ã©ã
- TSåãäžå®å
š
lang="TS"
ã§ã¯ãªã SFCstrict: true
ã§ã¯ãªã- CI ã§åãã§ãã¯ã§ããŠããªã
- ãšãã£ã¿ããšã©ãŒã§çã£èµ€ã«ãªã
- å®è¡æãšã©ãŒåé¿ãéçºäœéšã»ä¿å®æ§åäžã«å ããVue3æŽæ°ãžã®åžç³ãèžãŸãæŽæ°ãããã
- Design Doc ã®äœæãããã£ã
- ãªãã»äœã®ããã«ã»ã©ã®ããã«é²ããããèšã
- èæ¯ãèšèšããã¬ãŒããªãããªã¹ã¯ãªã©ãæŽç
- å¿ èŠãªããã°ç¡çã« script=setup ã«æžãæããªã
- TS â SFC Script â template ã®é çªã«é 次åãšã©ãŒãçŽã
- æ°èŠã«åãšã©ãŒã®æ··å ¥ãé²ãããããŸãã¯CIã§ã®åãã§ãã¯ãå°å ¥ãã
- TSåã®ãžã¬ã³ã â CIã§ãã§ãã¯ãããããæ¢åã³ãŒãã®åãšã©ãŒãå€ãããŠåãã§ãã¯ã匷ãã§ããªã
- æ¢åã®åãšã©ãŒãã¹ãŠã«
@ts-expect-error
ãä»äžããåãšã©ãŒãåé¿ããŠåãã§ãã¯ã远å ãã - https://github.com/kawamataryo/suppress-ts-errors
- æ¢åã®åãšã©ãŒãã¹ãŠã«
- éçã¢ã»ããã®ãã«ãçµææ¯èŒ
- TSåã®é²æãå¯èŠåããDashboardãäœæ
åæ°äžã¬ã³ãŒãã«èãããVue.jsãããžã§ã¯ããå®çŸããããã®ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°
https://vuefes.jp/2022/sessions/tbashiyy
- 倧éããŒã¿(4000人)ãå ¥ããŠã¿ãããã¡ããã¡ãéããªã£ã
- 4000 x 40屿§ã§16äžä»¶å ¥ã
- ååã¢ã¯ã»ã¹ã§ãã¹ãŠã®ããŒã¿ã Vuex ã«æ ŒçŽããŠããã
- ç»é¢ããšã«å¿ èŠãªããŒã¿ãåãã°ããããä¿®æ£åœ±é¿ã倧ãã
- æ¢åã¢ãŒããã¯ãã£ãå€ããã«ããã©ãŒãã³ã¹æ¹åãããã
- Chrome DevTools ãçšããèšæž¬ãã
- Peformanceèšæž¬ãããæéã®ããã£ãŠããåŠçãšã¡ã¢ãªäœ¿çšéã®å€ãéšåã調æ»
- Object.freeze ãå©çšãããªã¢ã¯ãã£ããåé¿
- 倧éã®"çµç¹"ã®æç»
- äžéšããæç»ãããããã«å¯ŸåŠãã
- ç»é¢ç¯å²å€ã¯ã¬ã³ããªã³ã°ãããªã ⊠Intersection Observer API
- ç»é¢å€ã¯æ ã ãæç»ããŠå¯ŸåŠ
- ãŸãã¯èšæž¬
ãªãã»ã©Vueã³ã³ããŒãã³ã
https://vuefes.jp/2022/#naruhodo-vue-component
Options API â Composition API ã§ã³ã³ããŒãã³ãéçºã¯ã©ãå€ãã£ããïŒ
- Options API ããªããžã§ã¯ãã¹ã¿ã€ã«ã§æžããŠããã®ã«å¯ŸããŠãComposition API ã§ã¯é¢æ°ããŒã¹ã§æžãã
- 眮ãæãããŠã¿ãŠå€§å€ã ã£ãããšã¯ããïŒ
- 眮ãæãããŒã«çãªãã®ãå©çšãã
- åã«ã€ããŠã¯ Vue.extend â defineComponent ã§ãããããåçŽã«ç©éã®ã€ãã
- 眮ãæãããŒã«çãªãã®ã«ã€ããŠ
- SFCãå ¥åã«ãscriptéšãASTè§£æããŠCompositionAPIã«å€æãã
- Options API ã¯è€æ°ã³ã³ããŒãã³ãã§å
±ééšã®æœåºãã€ãã
- computedã®å ±éåãšããMixinããã£ããã©ãMixinã€ãã
- ã³ã³ããŒãã³ãåäœã倧ãããªããã¡
- Composition API ã§ã¯ãã¹ããæžãããããªã£ã
Vueã§äœãã¢ã¯ã»ã·ãã«ãªã³ã³ããŒãã³ãã«ã€ããŠ
- STUDIO ã®ã¢ã¯ã»ã·ããªãã£ã«ã€ããŠ
- 詳ãã人ãããªããšããããªãããšããã®ãé£ããéšå
- Vueãªãã§ã¯ã®å€§å€ã
- Vueç¹æã¿ãããªãã®ã¯ãªãããHTMLã®æ§é ãå€ããªããšãããªãã·ãŒã³ããã£ãããã
ïŒç²ããŠããŸã£ãŠãã®ãããã§å°ãé¢è±ãããèãïŒ
From Zero to One
https://vuefes.jp/2022/sessions/Atinux
- Nuxt Web ã«ã€ããŠ
- Nuxt Labs 嵿¥è Sebastien Chopin ã«ããã»ãã·ã§ã³
- Nuxt 㯠5200äžDL ãããŠããã35äžä»¥äžã®ãµã€ãã§å©çšãããŠã
- Nuxt2 ãš Nuxt3 ã®æ¯èŒ
- Web Server: connect â h3
- Bundler: Webpack 4 â Vite or Webpack 5
- UI Framework: Vue2 â Vue3
- Routing library: Vue Router 3 â Vue Router 4
- ã«ãŒãã£ã³ã°ãå¿ èŠãªãå Žåã©ã€ãã©ãªããšé€å»ããã
- Meta management: Vue Meta â VueUse Head
- Server(less) packager â Nitro
- Hello world ã¢ããªã±ãŒã·ã§ã³ã§æ¯èŒããå ŽåãNuxt2âNuxt3ã§ãµã€ãºã1/3 (30kbçšåºŠ)
- Next 12 ãšæ¯èŒããŠãå°ãã
- Nitroãçã¿åºããŠãã³ãŒãã¯äœïŒ
- 以äžããçŽ8kbã«å«ãŸãã
- Hydrationçšã³ãŒã /
<Suspense>
ã䜿ã£ãã«ãŒãã³ã³ããŒãã³ã- Head 系㮠composable / ã³ã³ããŒãã³ã
- Universel & lighweight router
$fetch
- ããã©ã«ãã®ãšã©ãŒããŒãž
- Hook ã·ã¹ãã ãªã©
- 以äžããçŽ8kbã«å«ãŸãã
- Nuxt3
- Edge Side Rendering
- CDNã®ããŒãäžã§åäœããããå¶çŽãšããŠãããšãã°ãµã€ãºå¶é(5MB)ãªã©ãNode.js ã ãã©ãŠã¶ API ã¯äœ¿ããªããNuxt3 ã¯ããããåé¿ã§ããã
NITRO_PRESET=cloudflare npx nuxi build
ã§ãã«ãã§ãã- https://vuefes.nuxt.workers.dev/ ã§ãã¢ãèŠãã
- Cloud Flareworkers / Vercel Edge / Netlify Edge / Deno Deploy / Lambda Edge ãªã©ãªã©ã§åã
- Nuxt Image (çŸåšã¯Î²)
- Hybrid rendering: Server + SWR + Pre-rendering
- Full static generation
- Component Islands
- Astro ã® Island ã¢ãŒããã¯ãã£çãª
- PWA
- i18n
- ãªã©
- Edge Side Rendering
- çŸåš 41 ã®ã¢ãžã¥ãŒã«ãååšãã
content
ã¢ãžã¥ãŒã«ãšãã人æ°
- Nuxt Themes
- Docus ãšåŒã°ãããã®
- Nuxt 2.16 ãæ¢ãŸã£ãããã§ã¯ãªã
- Vue 2.7, Next Bridge(beta) ãªã©
Vite 3 and Beyond
https://vuefes.jp/2022/sessions/patak
- Vite㯠Vue 3 ã§ã®æšå¥šã«ãªã£ãŠãããNuxt 3 ã§ãå©çšãããŠã
- Slidev, Vitest ãªã©..
- Larabel ã Vite ãããã©ã«ãã§æ¡çšãã
- Vite 3 ã®æ°æ©èœ
- Node 12 ãããã
- ããã¥ã¡ã³ããæ°ãããªã£ã
- ã¹ã¿ãŒã¿ãŒãã³ãã¬ãŒããæŽç
- CLIãå·æ°
- æåã®ããŒãã«æéãããã£ãŠããŸãåé¡ã«ã€ããŠ
- é垞㯠Code Spliting ã§å¯Ÿå¿ãã
- äºåã«åæããŠäŸåããã±ãŒãžãesbuildã§ãã³ãã«
- 2.6 以åã¯ãã¹ãã£ã³ãšæé©åã¯ãµãŒãèµ·ååã«ãã£ãŠã
- 2.9 æç¹ã§ã¯ã䞊åã§åŠçã§ããããã«ã¯ãªã£ãŠããããã©ã°ã€ã³ãäŸåé¢ä¿ãæ³šå ¥ãããªã©ãèŠã€ãããªãã³ãŒãããããšè§£æ±ºã«å€±æããããããã®å Žåã¯ãã«ãªããŒããå¿ èŠã ã£ããããã«ãã£ãŠãç¹å®ã®ãããžã§ã¯ãã§ã¯èµ·åã2åé ããªã
- 3.0 ã§ã¯ãããæ¹åããã€äŸåããã£ãã·ã¥ãããããã2åç®ä»¥éã®èµ·åã¯ç¹ã«éã
- ESMãããã©ã«ãã«ãçŸç¶CJSã®ããã®ã¬ã€ã€ãŒã¯æäŸããŠããããå°æ¥çã«ãã¹ãŠESMã«ãªãã®ãæ³å®ã
- Vue 3.1ãæ¢ã«ãªãªãŒã¹ãããŠã
- HTMLããŒãµãŒã parse5 ã«ç§»è¡
- Rollup ã®æ°ããæ©èœ(Stage)ã䜿ãã
- ãã³ãã«ãµã€ãºãåæž
- Vite 4 ã®è©±
- HMR Partial Accept
- ESBuild Deps Optimazation at build time
- ããã©ã«ãæå¹åããããã
- Rollup 3 ãžã®æŽæ°
- ãã㯠Vite 4 ãåŸ ããã«æŽæ°ããããã
Component Testing
https://vuefes.jp/2022/sessions/Jess
- Cypress 10 ã®ç޹ä»ãšããã¹ãé§åéçºãªã©
- Cypress 10 ããå°å ¥ãããã³ã³ããŒãã³ããã¹ãã©ã³ããŒã䜿ãã©ã€ãã³ãŒãã£ã³ã°
倿޿ã®åããŒãããã£ã¡ãéããåžžã«ç»é¢èŠãªããéçºã§ããã®ã¯äœéšãšããŠè¯ãããã ãã©ãŠã¶èµ·å ã®äžå ·åãšããèµ·ãã¥ãããã
ãã ãéäžã®æ¿ããã¡ãœãããã§ãŒã³ã¯ã¡ãã£ãšèªã¿ã¥ãããããªããšããææ³ã ã£ãã
ä»ãªãPlaywrightã§ãé¡äŒŒã®ããšãã§ããã¯ããªã®ã§ãå°å ¥æ€èšãããªããã¡ããèŠãã»ããè¯ãããã
Patterns of VueUse
https://vuefes.jp/2022/sessions/anfu
- VueUse éçºããåŠãã ãã¹ããã©ã¯ãã£ã¹
unref
ã«ããref
ãã©ããã«é¢ãããªãå€ã®ååŸ- åŒæ°ã§åãå Žåã«ã¯
MaybeRef
åã䜿ãã - VueUse 9.0
- computed ãæž¡ãã®ã§ã¯ãªããåçŽãª getter 颿°ãæž¡ããšå éšã§ computed ã«ããŠããã
- "Reactivity Getter" ãšåŒã¶ããã
effectScope
onScopeDispose
ã䜿ãããšã§ãäžæ¬ããç Žæ£åŠçãªã©ãã§ãããonUnmounted
æãåŒã°ãã
effectScope
ã¯ææ¡ããŠãªãã£ãã
onScopeDispose
ãšã®çµã¿åããã§ãæ±çš Composable äœããšãã«ã¯ãªãŒã³ã¢ããåŠçãæè»ã«ãããã®è¯ãããã
Peephole
ãŸã å ¬åŒãããªãããå®éšçã«éçºããŠããæ©èœãªã©ã玹ä»ã®ã³ãŒããŒ
unplugin-vue-router
- Vue Router ã®åãå®çŸ©ã§ããããã«ãªã£ãŠã
- auto complete ãªã©ã䜿ãã
- FileSystemã«ãŒãã£ã³ã°ã§ã®ã«ãŒãã£ã³ã°ã§ã®åæšè«ãå¹ã
vue-router/auto
- 远ã£ãŠRFCã§ãŠãŒã¶ãŒã®æèŠãèããŠãã
- ãã¹ã®çµã蟌ã¿ãè¡ããšãparamsã®æ¹ãçµã蟌ãŸããŠtype safe ã«ãªã
pinceau
- (ïŸïŸïœ¯ïœ¿) / ãã©ã³ã¹èªã§ãã©ã·ã®æå³ããã
- https://github.com/Tahul/pinceau
- CSS in TS framework
- ãã¡ãã unplugin é äžããã
- Nuxt ãšã Vite ãšãã§äœ¿ãã
- Configuration ãã§ãŒãºãš Painting ãã§ãŒãº ããã
- èšå®ã®å®çŸ©ãšããŠã¯ãDesign System ã«åã£ãŠèšå®ãããCSSã ããå®çŸ©ããã ãã§ãªããã¹ã¯ãªãããšããç»é²ãã
<style scoped lang="ts">
ã®äžã§CSSãTSã§æžã- auto complete ãå¹ããnative css ã®ãã®ã¯äœ¿ããããäºåã«å®çŸ©ãããã®ã䜿ãã
- èšå®ãã¡ã€ã«ããæ¶ããšãIDEäžã§ã¯ãšã©ãŒã«ãªãããåãšããŠããšã©ãŒã§æ€ç¥ãã
- è€æ°ãããžã§ã¯ãã§åããã¶ã€ã³ã·ã¹ãã ã䜿ã£ãŠãå Žåã«ã倿Žãæ€ç¥ã§ããå ç¢ã«å®çŸ©ã§ãã
computed style
- 颿°ãæž¡ãããšãã§ãã
- 颿°ãã
props
ãå©çšããã¹ã¿ã€ãªã³ã°ãã§ãã¡ããããåãã§ãã¯ãå¹ã
- ãã³ãã¬ãŒãã®äžã§ãªããžã§ã¯ããæž¡ããŠäœ¿ãåããããšãã§ãã (sm/md/xl ãšãã§èšå®ãåãããšã)
computed style 㯠styled-components ã¿ããã ãªã£ãŠæã£ã
reTypewriter
https://github.com/antfu/retypewriter
- Typing Simulator
- ã³ãŒãã®å€æŽãåçãããœãããŠã§ã¢
- ãã¢ã§ã³ãŒããæžãããšãã«èª€åããã£ãŠãæåãããŸã§åé²ããªããã®ãã€ãã
- VSCode Extension ã§äœ¿ããããã«ãªã£ãŠã
- é©å®ã¹ãããã·ã§ãããæ®ã
- å ±ééšåã¯åå©çšãããããªæãã§åãããã³ãã«Type Writer ã¿ãããª
- äžåºŠã¹ãããã·ã§ãããäœãã°ãreTypewriteråŽã®ä¿®æ£ã§é çªãå ¥ãæ¿ããããã§ãã
- ãã¹ã®ãªãçºè¡šãã§ããã!!
ãããã
æ°å¹Žåã«å°é¢šãé£ãã£ãŠããŸã£ãVuefesã®ãšãã¯æ¬åœã«æ®å¿µã ãªããšæã£ãŠãã®ã§ããã ã®åå è ã ãææ šæ·±ãæãããã£ãã
ä»äºã§Vueã¯äœ¿ããªããªã£ãŠãããé 調ã«é²åããŠãããªããšããå°è±¡ã ååšãããã©ããšèšãããŠãæ°ãããããä»ããããªããšã¯ãªãã®ã§ã¯ïŒãšããæããããã