SPA ã®ãã«ãªãã¥ã¼ã¢ã«ãæè¡é¸å®ãè¨è¨ãããããã¨ã«ãªã£ãã
ååã®è¨äºãããã®ããã«æ¤è¨ã調æ»ãè¡ã£ã¦ããéã«çã¾ããå¯ç£ç©ãã¾ã¨ãããã®ã ã
ç®æãã¹ãã¯å¤æ´ããããã·ã¹ãã ã§ãããããã¦ããã¯ãå
ç¢æ§ãå®ç¾ãããã¨ã§éæãããã¯ãã ã¨ããçµè«ã«è³ã£ãã
ä»åã®è¨äºã§ã¯ãå
ç¢ãªã·ã¹ãã ã®å®ç¾ã«åãã¦ã©ããªæè¡ãé¸ãã ã®ããè¨é²ãã¦ããã
ã¾ã æ¤è¨¼ãã§ã¼ãºã¨ãããã試ãæ¸ããæ¤è¨¼ãè¡ã£ã¦ãã段éãªã®ã§ãä»å¾å¤ããå¯è½æ§ã¯ããã
åæ
ç¾è¡ã®ã¢ããªã¯ Rails ã¢ããªã§ããã®ä¸ã« Vue ãè¼ã㦠SPA ãä½ã£ã¦ããã
ããã³ãã¨ã³ãã®ãã«ã㯠Webpacker ãå¥ã®ãããã¯ãã§ã¯ Webpacker ãå¥ããã¦ãã¾ã£ããããã®ãããã¯ãã§ã¯å®ç¾ã§ãã¦ããªãã
ãã¥ã¼é¢é£ã®å¦çã«ã¤ãã¦ãã©ãã¾ã§ã Rails ã§ãã£ã¦ã©ããããããã³ãã¨ã³ããè¡ãã®ãããã®è²¬åã®åãåããææ§ã§ãæ´çããã¦ããªããè¨è¿°ãéè¤ãã¦ãããããããã³ã¼ãã«ãªã£ã¦ããããªãã¦ãã¨ãããã£ã¡ã
ãã
ãã®ã¢ããªããRails ã¨ããã³ãã¨ã³ãã§å®å
¨ã«åãåããRails ã¢ããªã¯APIãµã¼ãã¼ã¨ãã¦ä½¿ãããã«ãããã¨ããã®ã主ç®çã®ä¸ã¤ã
èªåã¯ããã³ãã¨ã³ãå´ã®æ§ç¯ãè¡ãã
詳ããã¯æ¸ããªãããããªãåé¡ãæ±ãã¦ããã³ã¼ãã§ãä¸ç¥ããã ãã§å¼·ãéåæãå¿é¿æãæ±ããããªä»£ç©ã«ãªã£ã¦ããã
å¥ã«ããã³ãã¨ã³ãã ããæ±ãã¨ããããã§ã¯ãªããRails å´ã®å®è£
ã«ã¤ãã¦ããRails åå¿è
ã®èªåã§ãçªã£è¾¼ã¿ãå
¥ããããªããããªå®è£
ãå¤ã
ãã£ãã
ã³ããããã°ãè¦ãéããé·æã®éç¨ã§æè¡çè² åµãç©ã¿ä¸ãã£ãããã§ã¯ãªãããã¼ã³ãæç¹ã§æ¢ã«æ§åãããããããã ã£ãã
å½æç§ã¯ã¾ã å¨ç±ãã¦ããªãã£ãããã©ãããããªãªã¼ã¹ãæåªå
ãã¦ããªãæ¥æµãã§ä½ã£ããã®ããããæ¬å½ã«ãã ãåãã¦ããã ããç¼ã®åã®è¦æ±ãæºããããã ãã®ã³ã¼ããç¡ç§©åºã«ç©ã¿ä¸ãã£ã¦ããã
åå°ãæªãã§ããã¨ãæ°ãã追å ããã³ã¼ããããã«åãããã°ãªãããã©ãã©ãã«ãªã¹ãæ¡ãã£ã¦ããããã¹ããæºè¶³ã«æ¸ããã¦ããªãããããªãã¡ã¯ã¿ãªã³ã°ãã¾ã¾ãªããªãã
ããã¦ãåå°ãä½ã£ãéçºè
ãã¡ã¯æ¢ã«èª°ãããªããéçºä¼ç¤¾ã«å¤æ³¨ãã¦ããããã®ä¼ç¤¾ã¨ã®å¥ç´ã¯ãã¼ã³ãå¾ã«åãã¦ããã
ããã¸ã§ã¯ããåãã¾ã¨ããã¹ããå¼ç¤¾å´ã®éçºè²¬ä»»è
ã¯ããã¼ã³ãã®ããªãåã®æ®µéã§æ¶ãã¦ãã¾ã£ããããã
ç¾å¨ã®ã¡ã³ãã¼ã¯ãæå¤åã§ãããã¼ã³ãç´åã«é¢ããå§ãããããã®ã¬ãã«ã
ãããåæã
ä»åã¯ãã®éã¡ãç¹°ãè¿ããªãããã«ããããã¨ããã®ã主è¦ãªãã¼ãã
ãããå®ç¾ããããã«æ¡ç¨ãããã¨ãã¦ããæè¡ãè¨è¨ææ³ããã¯ããã¯ããåæãã¦ããã
React
æ¢åã¢ããªã«å¯¾ããåé¡æè
æ¸ãæ¹ã«ä¸è²«æ§ããªããåãæå³ã®ãã¨ãããã®ã«ãéãæ¸ãæ¹ãéãæ©è½ã使ã£ã¦ããã
Vue ã¯è¯ããæªããã©ãã«ã§ãæ¸ãã¦ãã¾ãã¨ããããæè»ãããã¨ããå°è±¡ãæã£ã¦ãããçµæãçµ±ä¸æããªãå¯èªæ§ãä½ãå®è£
ã«ãªãã
ããã«ãä½ã§ã許容ãã¦ãã¾ããã¨ã§ãä¿å®æ§ãå¯èªæ§ãä½ãæ¸ãæ¹ããã¦ããåãæ¢ããã¯åé¡ãªãåãã¦ãã¾ãã
ä¸ä¾ã¨ãã¦ãã¨ã³ããªãã¤ã³ãã§Vue.component()
ãé£çºãã¦ããã®ã§ãã³ã³ãã¼ãã³ãå士ã®ä¾åé¢ä¿ãåããã«ãããªã£ã¦ãããWebpacker ã§ãã«ããã¦ããããã¢ã¸ã¥ã¼ã«ã·ã¹ãã ã使ããã®ã«ããªãããããã°ãã¼ãã«å¤æ°ãå¢ããã¾ããï¼
ã³ã³ãã¼ãã³ããç¶æ
ã¨ãã¸ãã¯ãæã¡ããã¦ããã¨ããåé¡ãããã
data
ãmethods
ãã©ãã©ã使ã£ã¦æ°è»½ã«è¤éã«ãã¦ããâ¦â¦ã
ãã¼ã å
ã§ã³ã¼ãã£ã³ã°è¦ç´ãå®ãã¦ãããéµå®ãã¦ããã°ãé²ããã®ãããããªãã
å®éãããã¯ã Vue ã®åé¡ã¨ãããããVue ã®ä½¿ãæ¹ã®åé¡ã§ããã
Vue ã§ãã£ãã¨ãã¦ããæ£ãã使ãã°å
ç¢ãªã·ã¹ãã ãæ§ç¯ã§ããã®ãããããªãã
ãããã人éã®åæã注æåã«é ¼ã£ãè¦ç´ã ã®ã«ã¼ã«ã ã®ã¯ããããç ´ããããè¤æ°äººã§éçºãããªãã確å®ã«ç ´ãããã
åã·ã¹ãã ãå
¸åã ãã人éã®ææã§ã¯ãªããä»çµã¿ã«ãã£ã¦æ¸ãæ¹ãå¶éãã¦é¸è±ãææ¢ããã®ãçæ³ã
æå¾ ãã¦ããå¹è½
React ã使ããã¨ã§ãå¯ä½ç¨ã®ãªããåªçæ§ã®ä¿ãããé¢æ°ã¨ãã¦ãã³ã³ãã¼ãã³ããä½ãããã
åãprops
ã渡ãã°å¿
ãåããã¥ã¼ãè¿ããã·ã³ãã«ãªé¢æ°ã
DDD ãã¢ã³ããã¿ã¼ã³ã¨ãã¦ãã SmartUI ãé¿ããUIãæ§ç¯ããã¨ããæ¬æ¥ã®å½¹å²ã«éä¸ããããã
ãããããã¨ã§ãã·ã³ãã«ãªå®è£ ã«ãªã£ã¦ã³ã¼ãã®è¦éãããããªããççµåã«ãªã£ã¦åå©ç¨æ§ãã¡ã³ããã³ã¹æ§ãé«ã¾ãã
React ã¯ååã¨ãã¦ã³ã³ãã¼ãã³ãã«ç¶æ ãæãããªããã¨ãæ¨å¥¨ãã¦ããã®ã§ããã³ã³ãã¼ãã³ãã«ç¶æ ããã¸ãã¯ãæãããããªããã¨ããæ¹éãããã¤ã®éã«ãé¸è±ãã¦ãããã¨ãããã¨ãèµ·ããã«ããã¯ããå°ãªãã¨ããã©ããªæ¸ãæ¹ã§ãåºæ¥ã¦ãã¾ã Vue ããã¯æ¹éãå®ããããã
ç¶æ
ãæã¤ã®ã¯ãã¿ã³ã®ãªã³ãªããªã©ãã®ã³ã³ãã¼ãã³ãã§å®çµãããã®ã ãã§ããã¡ã¤ã³ãã¸ãã¯ã¯å
¨ã¦ Redux ã§æ±ãã
ããã¦ãRedux ã¨ããåãããã®ã¯ã³ã³ããã³ã³ãã¼ãã³ãã®ã¿ã§ããã以å¤ã®ã³ã³ãã¼ãã³ãã¯è¦ªãããã¼ã¿ãåãåãã ãã«ããã
ãããå¾¹åºãããã¨ã§ã³ã¼ãã«ä¸è²«æ§ãçã¾ããã¨ããå¹æãããã®ã§ã¯ãªããã¨ãæå¾
ãã¦ããã
Redux
Vuex ã§ã¯ãªã Redux ã使ãããã£ãã¨ããã®ããReact ãæ¡ç¨ããçç±ã®ä¸ã¤ã
æ¢åã¢ããªã«å¯¾ããåé¡æè
ç¾ç¶ã§ã¯ç¶æ 管çã« Vuex ã使ã£ã¦ããããå°ãã¨ãããã Store ãåç §ããã¦ããããStore ã®æ´æ°æ¹æ³ãçµ±ä¸ããã¦ããªããããã³ã¼ãã追ãã«ãããã¾ããå½±é¿ç¯å²ãèªã¿ã¥ãããããä½æ¥ããã¥ããããã°ãåãè¾¼ããªã¹ã¯ãé«ãã
ãããããStore ã«å
¥ãã¦ããæ
å ±ãããã°ãã³ã³ãã¼ãã³ããæã£ã¦ããæ
å ±ããããããã«æ³åæ§ã¯ãªããè¤æ°ã®ã³ã³ãã¼ãã³ãã§ä½¿ã£ã¦ããå¤ã§ãã³ã³ãã¼ãã³ãæ¯ã«ä¿æãã¦ãããããã®ã§ãæããç¹ã«æ¹éã¨ãã¯ãªãã
æåã¯ãã£ãã®ãããããªããæ¹éãªãã«ã¼ã«ãªãããã ãå°ãªãã¨ãèªåãåç»ããæç¹ã§ã¯ãä½ãç¡ããªã£ã¦ããã
Vue ã¨åãã§ããããããã®ã©ã¤ãã©ãªãæªãã®ã§ã¯ãªã使ãæ¹ã®åé¡ã ã¨ã¯æãã
ããã¦ãVuex ã«ãã¡ãªããã¯ãããéåæå¦ç㯠Vuex ã®ã»ããæ±ããããããgetter
ã便å©ã ã
ã ã Vue ã Vuex ããå³å¯æ§ããªããã©ããªæ¸ãæ¹ã§ã許容ããã¦ãã¾ãã®ãåé¡ã ã¨æã£ã¦ããã
å¤æ³¨å
ã®éçºä¼ç¤¾ã«ããã³ããããPRã®è¨é²ãæ®ã£ã¦ããã ãããããã²ã©ãã£ãã
å
輩社å¡ã¨æããã人ç©ããã³ã¼ãã¬ãã¥ã¼ã§ Vuex ã®ä½¿ãæ¹ã«ã¤ãã¦ææãã¦ããããã®å
容ã¯èªåãåæè¦ã ããä¿®æ£ãé£ãããã®ã§ã¯ãªããã ãã¬ãã¥ã¼ã¤ã¯ãå
¬å¼ããã¥ã¡ã³ããèªãã§ãããåããã¾ããã§ããããã¨ã§ç¸è«ããã¦ãã ãããã¨è¿ãã¦ããã®ã¾ã¾æ¾ç½®ãã¦ãã¼ã¸ããã¦ããããã®ã¾ã¾ã§ãåããã¨ã¯åãããã ãããçµå±ãæ°ã¶æå¾ã«è¦ã¤ããèªåãç´ããã
è²ã
ã¨æãã¨ããã¯ããã®ã ããåãæ¢ãããããåãããªãã³ã¼ãããããã¯ãã«å
¥ãããããããããã¨ããæ°æã¡ã ã
ãããã人ã¯ã©ã®ã©ã¤ãã©ãªã使ã£ã¦ãåããªã®ãããããªãããVue ã¯ãããåãã£ã¦ããªã人ã§ãåããã¦ãã¾ããã¨ããå¾åãç¸å¯¾çã«å¼·ãæ°ãããã
ãå¤ãªä½¿ãæ¹ããã¦ãã奴ãæªããã¨è¨ã£ã¦ãã¾ãã°ããã¾ã§ã ããããããå¤ãªä½¿ãæ¹ãå¯è½ãªéãå¶éããã¹ãã§ã¯ãªãã®ãã
æå¾ ãã¦ããå¹è½
Redux ãæ¡ç¨ãããã®ãä½æ³ã«å¾ããå
¥éè¨äºã§ããå³è§£ããã¦ãããã©ãRedux ã§ã¯ãã¼ã¿ã®æµãã決ã¾ã£ã¦ããã
éçºè
ã¯ãããç解ãå¾ãå¿
è¦ãããã
ã ãã Redux ãæ¡ç¨ãããã¨ã§ãç¶æ
ã®åãæ±ããçµ±ä¸åã§ããã¨æå¾
ãã¦ãããåã³ã¼ãã好ãåæã«ç¶æ
ãåãæ±ã£ã¦ããç¾ç¶ããè±å´ããã
ããã¦ãRedux ã¨ããåããè¡ãã®ã¯ã³ã³ããã³ã³ãã¼ãã³ãã ãã«ãã¦ããã®ä¸ã«ãã¬ã¼ã³ãã¼ã·ã§ã³ã³ã³ãã¼ãã³ããã¶ãä¸ãã¦ããã
ãã¬ã¼ã³ãã¼ã·ã§ã³ã³ã³ãã¼ãã³ãã¯è¦ªã¨ãªãã³ã³ãã¼ãã³ãããprops
ãåãåãã ãã
ãããããã¨ã§ãç¶æ
ã®åãæ±ãã®è¦éãããããªããã©ã®ãã¼ã¿ãã©ãããã©ã使ããã¦ããã®ã追ãã«ãããã¨ããç¶æ³ãå°ãã¯ãã·ã«ãªãã¯ãã
ãã¡ãªããã¨ãã¦ã¯ãç¶æ
ãåã³ã³ãã¼ãã³ãã«æ¸¡ãã¦ãããã±ããªã¬ã¼ãçºçãã¦ãã¾ããã¨ãããã¦ãå¿
ã決ã¾ã£ãæ¹æ³ã§ãªãã¨ç¶æ
ãæ´æ°ã§ããªãããå¦çãåé·ã«ãªããã¨ã
ã ãåé·ã«ãªã代ããã«ä¸è²«æ§ãçã¾ããããæ¹æ³ãä¸ã¤ã«æ±ºãã¦ãã¾ããã¨ã§ã³ã¼ãã£ã³ã°è¦ç´ãå®ããããããªãã
è¤æ°ã®æ¸ãæ¹ã許容ããããããã«ã¼ã«ã«å¾ã£ã¦ç¶æ³ã«å¿ãã¦æ¸ãæ¹ãå¤ãããããªããæ¹ã¯ãæ··ä¹±ãæãããããç¹ã«è¤æ°äººã§ã®éçºã§ãããããã¨ãå¿
ãç ´ç¶»ããã ããã
ãã®ã³ã³ãã¼ãã³ãã§å®çµããç¶æ ã«ã¤ãã¦ã¯ãReact Hooks ã§ç®¡çãããã¨ãæ¤è¨ãã¦ããã
ã¾ãããã®ã¢ããªã¯ããã¤ãã®æ©è½ã«åå²ã§ããã®ã ããã¡ã¤ã³ã§ã¯ãªãå°è¦æ¨¡ãªãã®ã«ã¤ãã¦ã¯ãHooks ã Context ã§å¯¾å¿ããäºå®ã
å°è¦æ¨¡ãªã¢ããªã« Redux ãå°å
¥ããã®ã¯ãç¡éã«åé·ã«ãã¦ãã¾ãã ãã§ãå²ã«åããªãã¨æã£ã¦ããã
Store ã« DDD ã®èãæ¹ãå°å ¥ãã
æ¢åã¢ããªã«å¯¾ããåé¡æè
ã¨ã«ãã Store ãéç¶ã¨ãã¦ããããã åã«ãä¸ç®æã«éã¾ã£ã¦ããã以ä¸ã®æå³ã¯ãªããç¡ç§©åºã«ãã¼ã¿ãå¯ãéãããã¦ãããããããã®ãä¸ç®æã«éã¾ã£ã¦ãããã¨ããã®ããä¸è¿°ã®ããã«ã³ã³ãã¼ãã³ããç¶æ ãæã£ã¦ãã¾ã£ã¦ãããã¨ã§å´©ãã¦ããã
APIã®ã¬ã¹ãã³ã¹ããã®ã¾ã¾ Store ã«å ¥ãã¦ãã¾ã£ã¦ããã®ã ããAPIã®è¨è¨ãããªãåé¡ãæ±ãã¦ãããæ¬æ¥ã®æå³ã¨ã¯éã使ãæ¹ãä½åãªãããããªã©ã®ç¶æ³ã«ãªã£ã¦ããã
ãã®çµæããã¼ã¿ã®äºé管çãèµ·ãã¦ããããæ¬æ¥ã®æå³ã¨ã¯éãæå³ãå½¹å²ãæ
ãããã¦ãã¾ã£ã¦ããããããããæå³ãæ確ã«å®ç¾©ããã¦ããããåãæ¢ããããã使ãã°è¦æ±ãããæ©è½ãå®ç¾ã§ãããããã¨ããçç±ã§å¤ãåç
§ãã¦ãããããã
ããã¨ãã©ã®ãã¼ã¿ãã©ãã§ã©ã使ã£ã¦ããã®ãåããã¥ããå¤æ´ããã«ãããã使ãåæãæªãç¶æ
ã«ãªã£ã¦ããã
æ°è¦éçºãä¿®æ£ã®éã«ã©ã®å¤ãã©ã®ããã«ä½¿ãã¹ããããæ確ã§ã¯ãªãã
æå¾ ãã¦ããå¹è½
éç¶ã¨ç¡ç§©åºã«ãã¼ã¿ãå¯ãéãããã¦ãã Store ãããæå³ã®ããæ§é ãæã£ã Store ã«å¤ãããã
ãã®ããã« Store ã« DDD ã®èãæ¹ãå°å
¥ããã
ãã³ãã«ãªã£ãã®ã¯ãã®è¨äºã
Redux ã§ã¯ãªã Vuex ã ããåé¡æèãç¾ç¶ãããªãè¿ãããè¨äºã®å
容ã«ã大ããå
±æã§ããã
è¤éãã Store ã«éãè¾¼ãããã§æ¦ãããã«ãã¦ãè¤éããã³ã³ãã¼ãã³ãã«æ¼ãåºããªãããã«ããã®ãéè¦ã ã¨æãã
Store ããDDD ã§ããã¨ããã®è
æé²æ¢å±¤ã¨ãã¦æ©è½ãããã
ãã®ããã«ãAPIã§å¾ãå¤ããã®ã¾ã¾å
¥ããã®ã§ã¯ãªãããã¡ã¤ã³ã¢ãã«ãä½ã£ã¦ããã«å¿
è¦ãªå¤ãå
¥ãã¦ããã
å¿
è¦ãªãã¼ã¿ãããã¡ãã¨æå³ã®ããã¾ã¨ã¾ãã¨ã㦠Store ã«å
¥ã£ã¦ããç¶æ
ãç®æãã
ä»åã®ãã«ãªãã¥ã¼ã¢ã«ã§èã«ãªãã®ãããã®é¨åã ã¨æã£ã¦ããã
èªåãã¡ãæ±ã£ã¦ãããã¡ã¤ã³ã¯è¤éãªãã®ãªã®ã§ãè¤éã«ãªããã¨èªä½ã¯é¿ããããªããã¾ããä»æ§å¤æ´ãä»æ§æ¼ããé »çºããã
ãããããã« Store ã§å¶å¾¡ã§ãããåè² ã
CSS in JS ãå°å ¥ãã
æ¢åã¢ããªã«å¯¾ããåé¡æè
ã¨ã«ããã«ãªã¹ã¨ããè¨ãããããªãã
ã¾ããä¾åé¢ä¿ã追ãã®ãå°é£ã
node_modules/
ã git ã§ã³ããããã¦ããããã®ä¸ã«ããã¹ã¿ã¤ã«ã·ã¼ããç´æ¥åç
§ãã¦ããã
Webpacker ã¨ã¢ã»ãããã¤ãã©ã¤ã³ã®ä½¿ãåããåºæ¥ã¦ããªãã両æ¹ã§ä½¿ããã¦ããã¹ã¿ã¤ã«ã·ã¼ããè¤æ°ããã
SPAããã¹ã¿ãã£ãã¯ãªãã¼ã¸ããRails ã§ãã¥ã¼ã管çãã¦ãããã¼ã¸ããåãã¹ã¿ã¤ã«ã·ã¼ããåç
§ãã¦ããããããæ¬å½ã«å¿
è¦ãªå®ç¾©ã¯ã©ããªã®ããããåãããªãã
ã¹ã¿ã¤ã«ã®å®ç¾©èªä½ããããªãã
ãã¼ã¯ã¢ããã®é層æ§é ã«å¼·ãä¾åããå½¢ã§æ¸ããã¦ãããã¹ã¿ã¤ã«ã©ãããé¢é£ãæã£ã¦ãã¾ã£ã¦ãããå¤æ´ã«å¼±ããããããªãã®ãå¯çµåã«ãªã£ã¦ããã
ãbody
ç´ä¸ã®div
ã«å
¥ã£ã¦ããspan
è¦ç´ ã®ãã¡hogehoge
ã¨ããã¯ã©ã¹ãæã£ã¦ããè¦ç´ ã®å°è¦ç´ ã®â¦â¦ãã¿ãããªæ¸ãæ¹ããã¦ããã®ã§ãdiv
è¦ç´ ã1ååé¤ããã ãã§ãå
¨ã¦ãå£ããããªãã
!important
ãé£çºãã¦ãããè¨è¨ãå£ãã¦ããã
ãããªã£ã¦ãã¾ãã¨ãã©ã®ã¹ã¿ã¤ã«ãã©ãã«é©ç¨ããã¦ããã®ãç解ããã®ãå°é£ã§ãæãå ãã«ããã触ãã®ãæãã
å½±é¿ç¯å²ãèªããªãã®ã§ãå¤æ´ãå¿
è¦ã«ãªã£ãæã¯ãããå¾ããæ°ããã¯ã©ã¹ãä½ã£ã¦ä¸æ¸ããããã¯ã©ã¹ã®ç²è£½æ¿«é ã§ããã
ãããã¾ãã次第ã«è
ã£ã¦ãã£ãããã§ã¯ãªãããã¶ã¤ãã¼ï¼ãããå¤æ³¨ï¼ãç´åãã¦ãã段éã§ãæ¢ã«ãããªæãã ã£ãã
æ¹åãããã¨ãããã¨ããã£ãããéæ¹ã«æ®ããæ«æããã
æå¾ ãã¦ããå¹è½
æ£ç´ãªã¨ããèªåãã¹ã¿ã¤ã«ã·ã¼ãã¯è¦æã§ãããç¥èããªãã解決æ³ãæããªãã
ã¨ã«ãããã©ã®ã¹ã¿ã¤ã«ã·ã¼ããã©ãããèªã¿è¾¼ãã§ãã¦ãã©ã®ã³ã³ãã¼ãã³ãããã®ã¹ã¿ã¤ã«ã·ã¼ãã®é©ç¨ãåãã¦ããã®ãããåããããã«ãããã
ã«ãã»ã«åãã¦ãå½±é¿ç¯å²ãå°ãããã¦ãã¾ããããããããªãã¨ã¨ã¦ããããªããã¡ã³ããã³ã¹ã§ããªãã
ã¹ã¿ã¤ã«ã·ã¼ããã®ãã®ã¯å¤æ³¨ãã¦ãããã¶ã¤ãã¼ï¼ä¸è¨ã®ãã¶ã¤ãã¼ã¨ã¯å¥ï¼ãä½æããã®ã§ãåºæ¥ä¸ãã£ããã®ãã©ã®ããã«ã³ã³ãã¼ãã³ãã«é©ç¨ãã¦ããã®ããèããã
å
·ä½çãªã©ã¤ãã©ãªã«ã¤ãã¦ã¯ã¾ã 調æ»ãã¦ããªããããCSS in JS ã§æ¬å½ã«è§£æ±ºã§ããã®ããããåãã£ã¦ããªãã
åãæ¢ãããStyled Components
ãemotion
ã¨ãã£ãæåæã«ã¤ãã¦èª¿ã¹ãäºå®ã
JSDoc ã§ã³ã¡ã³ããæ¸ã
ãã®é¢æ°ããã©ããªæ§é ã®å¼æ°ãè¿ãå¤ãæ³å®ãã¦ããã®ããããã«åããã®ã¯ãã¡ã³ããã³ã¹æ§ã®è¦³ç¹ããã¨ã¦ãéè¦ã ã¨æã£ã¦ããã
TypeScript ãå°å
¥ããã®ããã¹ããªã®ã ããããç§èªèº«ããã¼ã å
¨ä½ã®å¦ç¿ã³ã¹ããèãã¦ãä»åã¯è¦éãäºå®ãä¸éå端ã«æãåºãããããã以å¤ã®ã¨ããã®å¦ç¿ãçéã«ãªã½ã¼ã¹ãå²ãã
å½é¢ã¯ JSDoc ã§ããã
ãã¹ããæ¸ã
ãã¹ãããªããã¨ã§ããã°ãåãè¾¼ãã§ãæ°ä»ããªãããããããåãã¦ããã³ã¼ãã«æãå ãããã¨ã«æ¶æ¥µçã«ãªããããªãã¡ã¯ã¿ãªã³ã°ã«ãäºã®è¶³ãè¸ãã§ãã¾ããæªãè¨è¨ãã³ã¼ãã£ã³ã°ãæ¾ç½®ããã¦æ´ã«æ··æ²ãæ·±ã¾ãã¨ããæªå¾ªç°ã«é¥ãã
åæ°ãåºãã¦ããããã¯å¿
è¦ã«é§ããã¦å¤æ´ãè¡ãã¨ãããæãæãã³ã¼ãã触ããã¨ã«ãªããããã¡ãã¡æåãã¹ããããªããã°ãªããå¹çãæªãã
ãã¹ãã§ãã°ã«æ°ä»ããªãå ´åãã¦ã¼ã¶ã¼ããã®åãåããã§ä¸å
·åãçºè¦ãããã¨ãå¤ãã
ãããªãã¨ãã¹ãã¼ãåªå
ã®å¯¾å¿ã¨ãããã¨ã§ãã®å ´ãã®ãã®ã³ã¼ããåãè¾¼ã¾ãã¦ãã¾ããã¾ãã¾ãã³ã¼ãã®è³ªãä¸ãããã·ã¹ãã ã®è¦éãã¯æªããªã£ã¦ããã
ãã¹ãããããã¨ã§ããã°ã®æ··å ¥ã«æ°ä»ããããããã¹ã¿ãã«ã«ãããã¨ã§ã³ã¼ãã®å質ãé«ããªãããã¹ããããã°ãªãã¡ã¯ã¿ãªã³ã°ãä¿®æ£ã®åå°ã«ãªãããã¹ãã³ã¼ããããã¥ã¡ã³ãã®å½¹å²ãæãããã¨ãã£ãå¹è½ãçã¾ããã
ã³ã³ãã¼ãã³ãã®åä½ç¢ºèªã«ã¯ Storybook ã®å©ç¨ãæ¤è¨ãã¦ããã
çµæã¯ããã«
æç´ãæ¸ããããæè¡é¸å®ã¯ãã®æè¡ãé¸ã¶ã«è³ã£ãèæ¯ãæèãéè¦ãªã®ã§ãã¡ããã¨æ¸ããã
ã¾ã課é¡ãããã ããã ã
解決ããã課é¡ããã£ã¦ãããã解決ããããã®ã¢ã¤ãã£ã¢ã¨ãã¦ãããããªæè¡ãç¥èãããã
ææ°ã®ã©ã¤ãã©ãªã人æ°ã®éçºææ³ãåãå
¥ããã°ä¸äºè§£æ±ºãã¨ãããã®ã§ã¯ãªãã
ã ãããèªåã¯ã©ããããã¨ãçµé¨ãã¦ãã¦ãä½ã課é¡ã ã¨æãã¦ããã®ããã大åã«ãªãã
ãããããé¸ã¶ã¹ãæè¡ãã©ã¤ãã©ãªãå°ãåºãããã®ã ããã
ããã«æ¸ãããã®ã¯ãããã¾ã§ãèªåãç½®ããã¦ããç¶æ³ã課é¡ã«å¯¾ãã¦æå¹ã ã¨æã£ããããæ¡ç¨ããã«éããªãã
React ãã Vue ã®ã»ããé©ãã¦ããç¶æ³ã ã£ã¦ããã ããã
æ¬å½ã«ããã«æ¸ããå
容ã§ä¸æãããã®ãããã®çãåããã¯åå¹´å¾ãããã ãããã
ãã®åã«ãã®ããã¸ã§ã¯ããä¼ç¤¾ãã®ãã®ãçµãã£ã¦ããå¯è½æ§ãããããã ãã