ã2026幎çãVueã®å§ãæ¹ â ããããããã³ããšã³ããã¬ãŒã ã¯ãŒã¯å ¥é
Vueã¯HTMLã«è¿ããã³ãã¬ãŒãæ§æã§æžãããããHTMLãšCSSã®åºç€ãããã°ãããå ¥ãããããã ãReactã ãš JSX ãšããç¬èªã®æžãæ¹ãèŠããå¿ èŠããããã©ãVueãªãæ®éã®HTMLã¿ã°ã«ãã£ã¬ã¯ãã£ããè¶³ããŠããæèŠã§æžããããåŠç¿æ²ç·ããããããªã®ãæå€§ã®é åã ãã
ãããã«HTMLã£ãœãæžãããªãå®å¿ããïŒã§ãæåã®ç°å¢æ§ç¯ã¯ã©ãããã®ïŒ
ä»ã¯create-vueãšããå ¬åŒããŒã«ã䜿ãã®ãæšæºã ããã¿ãŒããã«ã§ãnpm create vue@latestããšæã€ã ãã§ViteããŒã¹ã®ãããžã§ã¯ããäœãããã ãViteã¯è¶ é«éãªãã«ãããŒã«ã ããããã¡ã€ã«ãä¿åããç¬éã«ãã©ãŠã¶ã«åæ ããããéçºäœéšããšã«ããå¿«é©ã ãã
ãããžã§ã¯ããã§ãããããŸãäœãèŠãã°ããã®ïŒ
ãŸã㯠.vue ãã¡ã€ã«ãèŠãŠã¿ããããããSFCïŒSingle File ComponentïŒãšåŒã°ããVueã®åºæ¬åäœã§ã1ã€ã®ãã¡ã€ã«ã®äžã«scriptã¿ã°ãtemplateã¿ã°ãstyleã¿ã°ã®3ã€ã®ãããã¯ããŸãšãŸã£ãŠãããã ãHTMLãšJavaScriptãšCSSã1ãã¡ã€ã«ã«åãŸããããã³ã³ããŒãã³ãããšã®èŠéãããšãŠããããã
ãã³ãã¬ãŒãã®äžã§ããŒã¿ã衚瀺ããããæ¡ä»¶åå²ãããããã«ã¯ã©ãããã®ïŒ
Vueã«ã¯ãã³ãã¬ãŒããã£ã¬ã¯ãã£ããšããä»çµã¿ãããããv-bindã§å±æ§ã«ããŒã¿ãçŽã¥ããv-ifã§æ¡ä»¶åå²ãv-forã§ãªã¹ãã®ç¹°ãè¿ãæç»ãã§ãããããšv-modelã䜿ããšãã©ãŒã ã®å ¥åå€ãšå€æ°ãåæ¹åãã€ã³ãã£ã³ã°ã§ãããã ãHTMLã®å±æ§ã«ãv-ããã€ããã ãã ãããèŠããããã§ããïŒ
ããŒã¿ãå€ãã£ããç»é¢ãèªåã§æŽæ°ãããã£ãŠèãããã©ãããã£ãŠã©ãããä»çµã¿ãªã®ïŒ
ãããVueã®ããªã¢ã¯ãã£ããã£ãã ããComposition APIã§ã¯refãreactiveãšãã颿°ã§ããŒã¿ã宣èšãããšãå€ãå€ãã£ããšãã«é¢é£ããDOMïŒç»é¢ïŒãèªåã§åæç»ããããã ãcomputedã䜿ãã°ãä»ã®ããŒã¿ããèªåèšç®ãããå€ãäœããããããšãã°ååã®åæ°ãšå䟡ããrefã§æã£ãŠãåèšéé¡ãcomputedã§èšç®ãããã¿ãããªäœ¿ãæ¹ã ãã
ã³ã³ããŒãã³ããåããŠåå©çšããã«ã¯ã©ãããã°ããã®ïŒ
Vueã§ã¯propsãšemitã§ã³ã³ããŒãã³ãéã®ããŒã¿ãããåããããã芪ããåãžããŒã¿ãæž¡ãã®ãpropsãåãã芪ãžã€ãã³ããéç¥ããã®ãemitã ããããšãã°ãã¿ã³ã³ã³ããŒãã³ããäœã£ãŠã衚瀺ã©ãã«ãpropsã§åãåããã¯ãªãã¯ããããemitã§èŠªã«ç¥ãããããšããæµãã ãã
ããŒãžãå¢ããŠãããã«ãŒãã£ã³ã°ãšãå¿ èŠã«ãªãããïŒ
ãã®ãšãããVue Routerãšããå ¬åŒã©ã€ãã©ãªã䜿ãã°ãURLã«å¿ããŠããŒãžã³ã³ããŒãã³ããåãæ¿ããããããcreate-vueã®ã»ããã¢ããæã«ãRouter ã远å ããŸããïŒããšèããããããYesãéžã¶ã ãã§å°å ¥ã§ãããããšã¢ããªå šäœã§å ±æããããŒã¿ã®ç®¡çã«ã¯Piniaãšããç¶æ 管çã©ã€ãã©ãªã䜿ãã®ãä»ã®æšæºã ããVuexãããã·ã³ãã«ã§TypeScriptãšã®çžæ§ãæçŸ€ãªãã ã
Vueããã£ã𿬿 Œçã«äœ¿ããããªã£ãããæ¬¡ã¯äœãåŠã¹ã°ããã®ïŒ
NuxtãåŠã¶ã®ãããããã ããNuxtã¯VueããŒã¹ã®ãã«ã¹ã¿ãã¯ãã¬ãŒã ã¯ãŒã¯ã§ããµãŒããŒãµã€ãã¬ã³ããªã³ã°ããã¡ã€ã«ããŒã¹ã«ãŒãã£ã³ã°ãæåãã䜿ãããã ãReactã«ãããNext.jsã®ãããªååšã ããSEOãéèŠãªãµã€ããããã©ãŒãã³ã¹ã远æ±ããããšãã«åãçºæ®ãããã
æè¿Vueã®çéã§è©±é¡ã«ãªã£ãŠããæ°ããæè¡ã£ãŠããïŒ
Vapor Modeãšããå®éšçãªä»çµã¿ã泚ç®ãããŠããããããã¯åŸæ¥ã®ä»®æ³DOMã䜿ããã«ãã³ã³ãã€ã«æã«ãªã¢ã¯ãã£ããã£ã®ã³ãŒããçŽæ¥çæããã¢ãããŒããªãã ãä»®æ³DOMã®å·®åèšç®ãã¹ãããã§ããããããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããã¡ãªã¿ã«Vueã®ãªã¢ã¯ãã£ããã£ã·ã¹ãã ã¯å éšã§JavaScriptã®Proxyã䜿ã£ãŠããŠããªããžã§ã¯ãã®ããããã£ãžã®ã¢ã¯ã»ã¹ã倿Žãèªåã§æ€ç¥ããŠãããã ãã
æ±äººæ°ãå€§äŒæ¥ã§ã®æ¡çšå®çžŸã§ã¯Reactãå€ããã©ãVueã¯å ¬åŒããã¥ã¡ã³ããéåžžã«å å®ããŠããŠãæ¥æ¬èªã®æ å ±ãè±å¯ãªãã ãå人éçºãäžå°èŠæš¡ã®ãããžã§ã¯ããªãçç£æ§ã®é«ãã§Vueãå ãããå€§èŠæš¡ããŒã éçºãªãReactã®ãšã³ã·ã¹ãã ã®åããæŽ»ãããã©ã¡ããã¢ãã³ããã³ããšã³ãã®æ ¹å¹¹ã¯åãã ãããçæ¹ãæ·±ãåŠã¹ã°ããäžæ¹ãžã®ç§»è¡ãã¹ã ãŒãºã ãããŸãã¯èªåããæžããŠããŠæ¥œããããšæããã»ãããå§ããŠã¿ãã®ãäžçªã ãã