ããã«ã¡ã¯ã
ããããã§ãã
æè¿ã¯å³ã¨ããã£ãããåæã«åºãããã«ãªã£ã¦ãã¾ã£ã¦ã¨ã¦ãããã©ãã§ãã
ã¯ãã
ä»åã¯ãå¼ç¤¾ã®ãµã¼ãã¹ã§ããããªã¼ãã¼è¦ç©ã®ããã³ãã¨ã³ããVueããReactã«ä¹ãæãã話ã«ã¤ãã¦æ¸ãã¦ãããã¨æãã¾ãã
ã¾ãåæ
ãªã¼ãã¼è¦ç©ã§ã¯ãããã³ãã¨ã³ãã¯ï¼ã¤ã®ãµã¼ãã¹ã«åããã¦ãã
- è²·ãæåãç»é¢
- 売ãæåãç»é¢
- ãªã¼ãã¼éå¶åãç»é¢
ã¨ããæ§æã«ãªã£ã¦ããã¾ãã

åã Nuxt.jsã§ä½ããã¦ããããã®å ¨ã¦ã§SEOãåæãã¼ã¸ãã¼ãã£ã³ã°ã®ããã©ã¼ãã³ã¹ããããæ±ãããããã®ã§ã¯ãªããããCSRã§è¡ãããã«æ§æãã¦ãã¾ããã
ã¾ãä½ãå§ãã彿ãä¼ç¤¾ããããã¯ããã¢ã¼ãªã¼ãã§ã¤ãºã§ããããããããããã¯ããããã§è¡ãããã©ããã¨ããã®ããã£ããããä½ã使ã£ã¦ä½ããã¨ããã®ã¯æ·±ãèãããå¾ã«ä½ãç´ãã ããã¨ããã®ãåæã§Nuxt.jsãé¸å®ãã¦ãã¾ããã
VueããReactã«ã®ããããçµç·¯
æ£ç¢ºã«ã¯ Nuxt.js v2 ã使ã£ã¦ãã¾ããããVue2ã2023å¹´æ«ã«EOLã«ãªãã¨ããçºè¡¨ãããã¾ããããã®ã¾ã¾æ¾ç½®ããããã«ã¯ãããã対å¿ãå¿ è¦ã§ãããã³ã³ãã¼ãã³ãã©ã¤ãã©ãªã¨ãã¦Vuetifyãå©ç¨ãã¦ãããããVue2, Nuxt2, Vuetify2 ãåæã«3系統ã«ãããå¿ è¦ãããã¾ããã
å¥ã®åé¡ã¨ãã¦Vuetifyã«ä½¿ãã¥ãããæãã¦ãããã¨ãããã¾ããVuetifyèªä½ã¯ãã¹ã¿ã¼ãããã·ã¥ããã«ã¯è¯ãã£ãã®ã§ãããæ°å¹´ãµã¼ãã¹ã®éçºããã¦ç´°ããã¨ããã§ä½¿ãã¥ããã¨ããããã³ã³ãã¼ãã³ãã®ã«ã¹ã¿ãã¤ãºãè¡ããããç°¡åã«ã¯ã§ããªããã¨ããã±ã¼ã¹ãå¤ããããããã使ãç¶ããã®ãããã©ããªã¨ãããã¨ãå¤ã ããã¾ããã
ã¾ããå¼ç¤¾ã®å¥ãµã¼ãã¹ã§ãªã¼ãã¼è³¼è²·ã¨ããã®ãããã¾ãã
ãã¡ãã¯React(Next.js)ã使ã£ã¦ä½ã£ã¦ããã社ã¨ãã¦ã¨ã³ã¸ãã¢ã®ãã¼ããç¥èã®å ±æçãèããã¨ãVueã使ããã¨ãããã¦ç¤¾ã§ä½¿ãWebããã³ãã¨ã³ãã©ã¤ãã©ãªã¯Reactã«1æ¬åããã»ããããã¨èãã¾ããã
Reactã§ã©ãä½ã£ãã®ã
ã¾ãReactã使ãã¨è¨ã£ã¦ããViteã§SPAãæ§ç¯ãããNext.jsã使ãç鏿è¢ãè²ã ããã¾ããã
ä»ã ã¨Remixã§SPAã¢ã¼ãã使ã鏿è¢ããã£ãã®ã§ããã彿ã¯ã¾ã SPAã¢ã¼ãããªã鏿è¢ã¨ãã¦ããããã¨ãããã¾ããã§ããã
ã¾ãViteã§SPAãæ§ç¯ããã®ã§ããã°ãRouterã®é¸å®ãè¡ãå¿ è¦ããããReact Routerãçé åè£ã¨ãªãã®ããªã¨æãã¾ãããéå»ã«ã¨ã¦ãè¦ããçµé¨ããããã¾ãç©æ¥µçã«é¸æããããªããªã¨ããã®ãããã¾ããã
ãã®ãªãã§ãå è¿°éããªã¼ãã¼è³¼è²·ã§ã¯Next.jsã使ã£ã¦ããã®ã§ããããã¦ããã使ããã¨ã«ãã¾ããã
ã³ã³ãã¼ãã³ãã©ã¤ãã©ãªã«ã¤ãã¦ã¯ãç¾ç¶ãã§ã«é¡å¨åãã¦ããã«ã¹ã¿ãã¤ãºã大å¤ã¨ããåé¡ãããã¾ããã
ããã§è²ãå½¢ãæåãæç¢ºã«æ±ºã¾ã£ã¦ãã¦ãã«ã¹ã¿ãã¤ãºæ§ã®ä½ãã³ã³ãã¼ãã³ãã©ã¤ãã©ãªã使ç¨ãã¦ãã¾ãã¨åæ§ã®åé¡ãçºçãã¦ãã¾ãã¾ãã
ããã§ shadcn/ui ã使ã£ã¦æ°ãããã¶ã¤ã³ã·ã¹ãã ã»UIã³ã³ãã¼ãã³ãéãä½ãã¾ããã
詳ããã¯ã以åããã¯ããããçºè¡¨ããè³æãããã¾ãã®ã§ãåèãã¦ã¿ã¦ãã ããã
Vueã®ã³ã¼ãã¯å ¨ã¦ã§ã¯ãªãã®ã§ãããå¤ããæ¨å¥¨ããã¦ããªãåæ¹åãã¼ã¿ãã¤ã³ãã£ã³ã°ï¼Propsã§åãåã£ããªãã¸ã§ã¯ãã«ãã®ã¾ã¾ä»£å ¥ããå½¢å¼ï¼ã使ç¨ããã¦ãããåç´ã«Reactã«ç½®ãæããã¨ããã®ã¯é£ããç®æãå¤ã ããã¾ããã
ã¾ãç¾ç¶ã§ã¯ä¸è¦ã«ãªã£ãã§ãããã³ã¼ããè¤æ°ããããããã®ç²¾æ»ãè¡ãå¿ è¦ãããã¾ããã
ãã®ãããã¶ã¤ã³ããã£ã¼ãªã³ã°ãå¤ããç®æããã£ãããã¾ãæå³ããæ©è½ãè½ã¡ã¦ãã¾ãç®æãå¤ã ãã£ããããä¸å¯§ã«QAãè¡ããªããç§»è¡ä½æ¥ãé²ãã¦ããã¾ããã
ãªãªã¼ã¹æé
ä¸åº¦ã«ãã¹ã¦ãç½®ãæããã®ã¯æéããããã¾ãããã ããç§»è¡ã§ãã¦ãããããã¹ããè¡ãã®ã大å¤ã§ãããããã¦ã¼ã¶ã¼å½±é¿ãããªããã®ããé ã«ãªãªã¼ã¹ãè¡ãã¾ããã
ãã®ãªãã§ã¡ã³ãã¼ã®ç¿ç度ãä¸ããå¾ç¶ã®ã¦ã¼ã¶ã¼ã¸ã®å½±é¿åº¦ãé«ããã®ãå®å ¨ã«ä¸å®ã®é度ããã£ã¦ç§»è¡ã§ããããã«ãã¾ããã
é çªã¨ãã¦ã¯ã
- ãªã¼ãã¼ã®ç¤¾å¡ã®ã¿ãã触ããªãããªã¼ãã¼éå¶åãç»é¢
- ç»é¢æ°ãå¤ããªããæ¯è¼çæ©è½æ°ãå¤ããªãã売ãæåãç»é¢
- ä¸çªãç»é¢æ°ã»æ©è½æ°ãå¤ãããªãã·ã§ã³ã®æ©è½ãå¤åã«å«ã¾ãããè²·ãæåãç»é¢
ã¨ãã¾ããã

ããã«è²·ãæåãç»é¢ã«ã¤ãã¦ã¯ç»é¢æ°ãå¤ããæ©è½ãå¤ãå«ã¾ãã¦ããã®ã§ãã¾ãä¸è¦ãªæ©è½ã®åé¤ãä¸ç»é¢ã«å ¥ãè¾¼ãã§ããæ©è½ã®ç§»åãè¡ãã以éã«é¢ããã³ã¹ããã§ããã ã忏ãããã¨ã«ãã¾ããã
ãã®å¾ãåç»é¢ã»æ©è½ã«ã¤ãã¦æ®µéãè¸ãã§ãªãªã¼ã¹ãè¡ããã¨ã«ãã¾ããã
- ãã°ã¤ã³ç»é¢ã»ãã¤ãã¼ã¸
- ä¸é¨ã¦ã¼ã¶ã¼ã®ã¿ãªãã·ã§ã³ã§æä¾ãã¦ããä¸»è¦æ©è½
- å ¨ã¦ã¼ã¶ã¼å©ç¨å¯è½ãªä¸»è¦æ©è½
- è¨å®ç»é¢ç
ãããç»é¢ã»æ©è½åä½ã§ãªãªã¼ã¹ããããã«ãAWSã®CloudFrontãå©ç¨ããç¾è¡ã®Nuxt.jsã¨ç§»è¡å¾ã®Next.jsã«æ¯ãåããããã«ãã¾ããã
ãããããã¨ã§ãå®å ¨ã«ç»é¢ã»æ©è½åä½ã§ãªãªã¼ã¹ãããã¨ãã§ãã¾ããã
ãããã§ã大ããªåé¡ããªãï¼å°ã åé¡ã¯ããã¾ãããã峿坾å¿ã§ããç¯å²ã§ããï¼ç§»è¡ãé²ãããã¨ãã§ãã¾ããã
Reactã«ãã¦ã©ãã ã£ãã
Vue2ããã®ç§»è¡ã§ãã£ãã¨ããã®ããããã¨ã¦ãã·ã³ãã«ã«ãããããã«ãªã£ããªã¨æãã¦ãã¾ãã
Vue2ã使ã£ã¦ããã¨ãã¯ãå ã«ãæ¸ãã¾ãããæ¨å¥¨ããã¦ããªãåæ¹åãã¼ã¿ãã¤ã³ãã£ã³ã°ã使ããã¨ã§ãã¨ããããåãããã¨ãã§ãã¦ãã¾ããã
ãããReactã«ããçµæããã®æ¹æ³ã¯ä¸å¯è½ã«ãªã£ãã®ã§ãæå³ããä»ã®ã³ã³ãã¼ãã³ãã®è¡¨ç¤ºãå¶å¾¡çãããããªãã¨ã«ãªãã¨ãããã¨ããªããªããåé¡ãçºçããã¨ããåå ãæ¢ãããããªã£ããã¨æãã¾ãã
ã¾ãããã¯Reactã«ããããã¨ããããã§ã¯ãªãã®ã§ãããç§»è¡ãæ©ã«ãã¼ã å ã§ãããããã±ã¼ã¹ã¯ããæ¸ããã»ããããããã¨ãããããªè°è«ãã³ã¼ãã£ã³ã°ã«ã¼ã«ã¨ã¾ã§ã¯è¨ããªãã§ãããç´æäºã®ãããªãã®ãã§ãããããã®ã¯ããã£ããªã¨æã£ã¦ãã¾ãã
ã¾ã社ã®éçºãã¼ã ãé±ã«ä¸åº¦éã¾ã£ã¦ãéçºå ¨è¬ã«ã¤ãã¦è©±ãåãå ´ãããã®ã§ãããããã§ãReactã®è©±é¡ãã¨ãããããããªãããããã¯ããè¶ ãã¦ãäºãã®ç¥è¦ãå ±æãããããªã£ãããªã¨æã£ã¦ãã¾ãã
ãããã«
ä»åã¯ãã¬ã¼ã ã¯ã¼ã¯ç§»è¡ã«ã¤ãã¦çµæ§ãã£ããã¨æ¸ããã¦ãããã¾ããï¼
ãç§»è¡ãããï¼ãã¨æ±ºãã¦ãã主è¦ã¡ã³ãã¼3人ã»ã©*1ã§ãä¸å¹´ç¡ãä½ã®æéã§å ¨ç§»è¡ãå®äºããã®ã¯ãã ãã¶ããã£ããªã¨æã£ã¦ãã¾ãã ï¼å人çãªçµé¨ä¸ã»ã¼ãªã³ã¹ã±ã§ãããã£ãç§»è¡ä½æ¥ãå®äºããã®ã¯åãã¦ã®çµé¨ã ã£ãã®ã§ãçµæ§å¬ããæã£ã¦ã¾ãï¼ï¼
ã¾ããBizãã¼ã ã«ããªããããä»è¡ãå¿ è¦ãããã®ãã¨ããã®ãçè§£ãã¦ããã£ã¦ããäºãã«ååãã¦é²ãããããã¨ã¯ã¨ã¦ãããã£ãããå¼ç¤¾ã大äºã«ãã¦ããBizDevMixãä½ç¾ã§ãã¦ããã®ããªã¨æãã¾ããï¼
ãã®ãã¾ãè¡ã£ãçç±çããå°ãè¸ã¿è¾¼ãã ãã¨ã«ã¤ãã¦ã¯ãå¥éè¨äºãªãçºè¡¨ãªãã§ããããããªãã¨èãã¦ãã¾ãï¼
ããã¡ãã£ã¨è¸ã¿è¾¼ãã§è©³ãããã¨èããããï¼ã¨ããæ¹ãããã£ãããã¾ãããããã²ã«ã¸ã¥ã¢ã«ã«ã話ã§ããã°ã¨æã£ã¦ã¾ãã®ã§ãããããé¡ããã¾ãï¼
*1:ææã«ãã£ã¦ã¯1人ã§ãã£ãã5人ã§ãã£ããã¨ããã®ã¯ããã¾ããããå¤ãã®æéã3人ç¨ã§åãã¦ãã¾ããã