Reactãããžã§ã¯ãã§ãã¶ã€ã³ã·ã¹ãã ã广çã«å®è£ ãã³ã³ããŒãã³ãã©ã€ãã©ãªããã¹ããã©ã¯ãã£ã¹ãã°ããŒãã«ãªã¢ã¯ã»ã·ããªãã£ãã¹ã±ãŒã©ãã«ãªUIæ§ç¯ãåŠã¶å æ¬çã¬ã€ãã
Reactã³ã³ããŒãã³ãã©ã€ãã©ãªïŒãã¶ã€ã³ã·ã¹ãã ã®å®è£ â ã°ããŒãã«ã¬ã€ã
é²åãç¶ããããã³ããšã³ãéçºã®äžçã«ãããŠãäžè²«æ§ãããã¹ã±ãŒã©ãã«ãªãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ïŒUIïŒãæ§ç¯ããããšã¯æãéèŠã§ããReactã³ã³ããŒãã³ãã©ã€ãã©ãªã¯ãå®çŸ©ããããã¶ã€ã³ã·ã¹ãã ã«æºæ ãããäºåã«æ§ç¯ãããåå©çšå¯èœãªUIã³ã³ããŒãã³ããæäŸããããšã§ããã®èª²é¡ã«å¯Ÿãã匷åãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãããã®ã¬ã€ãã§ã¯ãã°ããŒãã«ãªèæ ®äºé ãšãã¹ããã©ã¯ãã£ã¹ã«çŠç¹ãåœãŠãReactã³ã³ããŒãã³ãã©ã€ãã©ãªã䜿çšãããã¶ã€ã³ã·ã¹ãã ã®å®è£ ã«é¢ããå æ¬çãªæŠèŠã説æããŸãã
Reactã³ã³ããŒãã³ãã©ã€ãã©ãªãšã¯ïŒ
Reactã³ã³ããŒãã³ãã©ã€ãã©ãªã¯ãReactã䜿çšããŠæ§ç¯ãããåå©çšå¯èœãªUIã³ã³ããŒãã³ãã®ã³ã¬ã¯ã·ã§ã³ã§ãããããã®ã³ã³ããŒãã³ãã¯ãèŠèŠçãªè¡šçŸãšåºç€ãšãªãæ©èœã®äž¡æ¹ãã«ãã»ã«åããŠãããéçºè ãè€éãªUIãããå¹ççã«æ§ç¯ã§ããããã«ããŸãããããã¯äžè²«æ§ãä¿é²ããéçºæéãççž®ããä¿å®æ§ãåäžãããŸãã
Reactã³ã³ããŒãã³ãã©ã€ãã©ãªã®äžè¬çãªäŸã¯æ¬¡ã®ãšããã§ãïŒ
- Material-UIïŒçŸMUIïŒ: Googleã®ãããªã¢ã«ãã¶ã€ã³ãå®è£ ãããåºã䜿çšãããŠããã©ã€ãã©ãªã
- Ant Design: äžåœããã³äžçã§äººæ°ã®ããUIãã¶ã€ã³èšèªããã³React UIã©ã€ãã©ãªã
- Chakra UI: ã¢ãã³ã§ã¢ã¯ã»ã·ãã«ããã€æ§æå¯èœãªã³ã³ããŒãã³ãã©ã€ãã©ãªã
- React Bootstrap: Reactã§å®è£ ãããBootstrapã³ã³ããŒãã³ãã
- Semantic UI React: Semantic UIã®Reactå®è£ ã
Reactã³ã³ããŒãã³ãã©ã€ãã©ãªãšãã¶ã€ã³ã·ã¹ãã ã䜿çšããã¡ãªãã
Reactã³ã³ããŒãã³ãã©ã€ãã©ãªãéããŠãã¶ã€ã³ã·ã¹ãã ãå®è£ ããããšã«ã¯ãéçºå¹çãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®äž¡æ¹ã«è²¢ç®ããå€ãã®ã¡ãªããããããŸãïŒ
- äžè²«æ§: ã¢ããªã±ãŒã·ã§ã³å šäœã§äžè²«ããã«ãã¯ã¢ã³ããã£ãŒã«ã確ä¿ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãšãã©ã³ãèªç¥åºŠãåäžãããŸããããã¯ãç°ãªãå°åãããã€ã¹ã§çµ±äžãããååšæãç¶æããå¿ èŠãããã°ããŒãã«ãã©ã³ãã«ãšã£ãŠç¹ã«éèŠã§ãã
- å¹çæ§: äºåã«æ§ç¯ããããã¹ãæžã¿ã®ã³ã³ããŒãã³ããæäŸããããšã§ãéçºæéãççž®ããŸããéçºè ã¯åºæ¬çãªUIèŠçŽ ãåçºæãã代ããã«ãç¬èªã®æ©èœã®æ§ç¯ã«éäžã§ããŸãã
- ä¿å®æ§: ã¡ã³ããã³ã¹ãšæŽæ°ãç°¡çŽ åããŸããã³ã³ããŒãã³ããžã®å€æŽã¯ã¢ããªã±ãŒã·ã§ã³å šäœã«åæ ããããããäžæŽåããã°ã®ãªã¹ã¯ãæžå°ããŸãã
- ã¹ã±ãŒã©ããªãã£: ãããžã§ã¯ãã®æé·ã«åãããŠã¢ããªã±ãŒã·ã§ã³ãæ¡åŒµããããããŸããæ°ããã³ã³ããŒãã³ããã©ã€ãã©ãªã«è¿œå ããããæ¢åã®ã³ã³ããŒãã³ããã¢ããªã±ãŒã·ã§ã³ã®ä»ã®éšåã«åœ±é¿ãäžããããšãªãæŽæ°ãããã§ããŸãã
- ã¢ã¯ã»ã·ããªãã£: ã³ã³ããŒãã³ãã©ã€ãã©ãªã¯å€ãã®å Žåãã¢ã¯ã»ã·ããªãã£ãåªå ããé害ãæã€äººã ãå©çšã§ããããã«èšèšãããã³ã³ããŒãã³ããæäŸããŸããããã¯ãã¢ã¯ã»ã·ããªãã£åºæºã«æºæ ããäžçäžã®ãŠãŒã¶ãŒã®å æ¬æ§ã確ä¿ããããã«äžå¯æ¬ ã§ãã
- ã³ã©ãã¬ãŒã·ã§ã³: å ±éã®èšèªãšUIèŠçŽ ã®ã»ãããæäŸããããšã§ããã¶ã€ããŒãšéçºè éã®ã³ã©ãã¬ãŒã·ã§ã³ãä¿é²ããŸãã
ãã¶ã€ã³ã·ã¹ãã ã®äž»èŠã³ã³ããŒãã³ã
é©åã«å®çŸ©ããããã¶ã€ã³ã·ã¹ãã ã¯ãåãªãã³ã³ããŒãã³ãã®éå以äžã®ãã®ã§ãããäžè²«æ§ã®ãããŠãŒã¶ãŒãã¬ã³ããªãŒãªã€ã³ã¿ãŒãã§ãŒã¹ãæ§ç¯ããããã®å æ¬çãªãã¬ãŒã ã¯ãŒã¯ãæäŸããŸããäž»èŠãªèŠçŽ ã¯æ¬¡ã®ãšããã§ãïŒ
- ãã¶ã€ã³ããŒã¯ã³: è²ãã¿ã€ãã°ã©ãã£ãã¹ããŒã·ã³ã°ãã·ã£ããŠãªã©ã®ãã¶ã€ã³å±æ§ã®æœè±¡çãªè¡šçŸã§ãããã¶ã€ã³ããŒã¯ã³ã«ãããã¢ããªã±ãŒã·ã§ã³ã®èŠèŠã¹ã¿ã€ã«ã®ç®¡çãšæŽæ°ã容æã«ãªããããŒãèšå®ããã©ã³ãã£ã³ã°ããµããŒãããŸãããããã¯ç¹å®ã®ã³ãŒãå®è£ ããç¬ç«ããŠãããç°ãªããã©ãããã©ãŒã éã§ç°¡åã«å ±æã§ããŸãã
- UIã³ã³ããŒãã³ã: ãã¿ã³ãå ¥åãã£ãŒã«ããããã²ãŒã·ã§ã³ããŒãã«ãŒããªã©ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®æ§æèŠçŽ ã§ãããããã¯ã³ãŒãïŒäŸïŒReactã³ã³ããŒãã³ãïŒã䜿çšããŠæ§ç¯ãããåå©çšå¯èœã§æ§æå¯èœã§ããã¹ãã§ãã
- ã¹ã¿ã€ã«ã¬ã€ã: èŠèŠçãªã¬ã€ãã©ã€ã³ãã³ã³ããŒãã³ãã®ä»æ§ã䜿çšäŸãªã©ããã¶ã€ã³ã·ã¹ãã ã®äœ¿ç𿹿³ã説æããããã¥ã¡ã³ãã§ããã¹ã¿ã€ã«ã¬ã€ãã¯ãã¢ããªã±ãŒã·ã§ã³å šäœã®äžè²«æ§ã確ä¿ããŸãã
- ã¢ã¯ã»ã·ããªãã£ã¬ã€ãã©ã€ã³: ã¹ã¯ãªãŒã³ãªãŒããŒãããŒããŒãããã²ãŒã·ã§ã³ãè²ã®ã³ã³ãã©ã¹ãã«é¢ããèæ ®äºé ãå«ããé害ãæã€äººã ãã¢ããªã±ãŒã·ã§ã³ãå©çšã§ããããã«ããããã®ååãšå®è·µã§ãã
- ãã©ã³ãã¬ã€ãã©ã€ã³: ããŽã®äœ¿çšæ³ãã«ã©ãŒãã¬ãããããŒã³ã»ãªãã»ãã€ã¹ãªã©ãã¢ããªã±ãŒã·ã§ã³ã§ãã©ã³ããã©ã®ããã«è¡šçŸãã¹ããã«ã€ããŠã®æç€ºã§ãã
Reactã³ã³ããŒãã³ãã©ã€ãã©ãªã䜿çšãããã¶ã€ã³ã·ã¹ãã ã®å®è£
å®è£ ããã»ã¹ã«ã¯ãããã€ãã®äž»èŠãªã¹ããããå«ãŸããŸãïŒ
1. ã³ã³ããŒãã³ãã©ã€ãã©ãªãéžæããããç¬èªã«æ§ç¯ãã
Reactã³ã³ããŒãã³ãã©ã€ãã©ãªãéžæããéã¯ããããžã§ã¯ãã®ããŒãºããªãœãŒã¹ããã¶ã€ã³èŠä»¶ãèæ ®ããŠãã ãããMUIãAnt DesignãChakra UIãªã©ã®äººæ°ã®ãããªãã·ã§ã³ã¯ãå¹ åºãäºåæ§ç¯æžã¿ã³ã³ããŒãã³ããšæ©èœãæäŸããŸãããããã¯ãç¬èªã®ã«ã¹ã¿ã ã³ã³ããŒãã³ãã©ã€ãã©ãªãæ§ç¯ããããšãã§ããããã«ããæè»æ§ã¯é«ãŸããŸãããåæã®åŽåãå¿ èŠã«ãªããŸãã
äŸïŒãããžã§ã¯ããGoogleã®ãããªã¢ã«ãã¶ã€ã³ã¬ã€ãã©ã€ã³ãžã®æºæ ãå¿ èŠãšããå ŽåãMaterial-UIïŒMUIïŒã¯åªããéžæè¢ã§ãããããžã§ã¯ããåœéåã«éç¹ã眮ããŠãããè€æ°ã®èšèªãšãã±ãŒã«ã®ãµããŒããå¿ èŠãªå Žåã¯ãçµã¿èŸŒã¿ã®i18nïŒåœéåïŒãµããŒããæäŸããããi18nã©ã€ãã©ãªãšç°¡åã«çµ±åã§ããã©ã€ãã©ãªãæ€èšããŠãã ããã
2. ãã¶ã€ã³ã·ã¹ãã ãèšèšã»å®çŸ©ãã
éçºãéå§ããåã«ããã¶ã€ã³ã·ã¹ãã ãå®çŸ©ããŸããããã«ã¯ãèŠèŠã¹ã¿ã€ã«ãã¿ã€ãã°ã©ãã£ãã«ã©ãŒãã¬ãããã³ã³ããŒãã³ãã®åäœã確ç«ããããšãå«ãŸããŸããã¹ã¿ã€ã«ã¬ã€ããäœæãããã¶ã€ã³ããŒã¯ã³ãææžåããŠäžè²«æ§ã確ä¿ããŸãã
äŸïŒãã©ã€ããªãšã»ã«ã³ããªã®ã«ã©ãŒãã¬ãããèŠåºããæ¬æããã¹ãããã¿ã³ã®ããã¹ãã¹ã¿ã€ã«ãå®çŸ©ããŸããã¹ããŒã·ã³ã°ïŒäŸïŒããã£ã³ã°ãšããŒãžã³ïŒãããã¿ã³ãªã©ã®ã³ã³ããŒãã³ãã®èŠèŠçãªå€èгïŒäŸïŒè§ã®äžžã¿ããããŒç¶æ ãã¢ã¯ãã£ãç¶æ ïŒãææžåããŸãã
3. ã³ã³ããŒãã³ãã©ã€ãã©ãªãã€ã³ã¹ããŒã«ã»èšå®ãã
npmãyarnãªã©ã®ããã±ãŒãžãããŒãžã£ãŒã䜿çšããŠãéžæããã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããŸããã©ã€ãã©ãªã®ããã¥ã¡ã³ãã«åŸã£ãŠããããžã§ã¯ãçšã«èšå®ããŸããããã«ã¯ãã©ã€ãã©ãªã®CSSãã€ã³ããŒãããããããŒããããã€ããŒã䜿çšãããããããšãå«ãŸããå ŽåããããŸãã
äŸïŒMUIã䜿çšããå Žåãéåžžã¯`npm install @mui/material @emotion/react @emotion/styled`ïŒãŸãã¯`yarn add @mui/material @emotion/react @emotion/styled`ïŒã䜿çšããŠããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãããã®åŸãReactã¢ããªã±ãŒã·ã§ã³å ã§ã³ã³ããŒãã³ããã€ã³ããŒãããŠäœ¿çšã§ããŸããã©ã€ãã©ãªã®ããã©ã«ãã¹ã¿ã€ã«ãã«ã¹ã¿ãã€ãºããããã«ãããŒããããã€ããŒãèšå®ããå¿ èŠãããå ŽåããããŸãã
4. ã³ã³ããŒãã³ããäœæã»ã«ã¹ã¿ãã€ãºãã
ã©ã€ãã©ãªã®ã³ã³ããŒãã³ããå©çšããŠUIãæ§ç¯ããŸãããã¶ã€ã³ã·ã¹ãã ã«åãããŠã³ã³ããŒãã³ããã«ã¹ã¿ãã€ãºããŸããã»ãšãã©ã®ã©ã€ãã©ãªã¯ãpropsãããŒãèšå®ããŸãã¯CSSã«ã¹ã¿ãã€ãºãéããŠã³ã³ããŒãã³ãã®å€èгãšåäœãã«ã¹ã¿ãã€ãºãããªãã·ã§ã³ãæäŸããŠããŸããäŸãã°ããã¿ã³ãããã¹ããã£ãŒã«ãã®è²ããµã€ãºããã©ã³ãã調æŽã§ããŸãã
äŸïŒMUIã䜿çšãããšã`color="primary"`ã`size="large"`ã®ãããªpropsã䜿çšããŠãã¿ã³ã®è²ãšãµã€ãºãã«ã¹ã¿ãã€ãºã§ããŸããããé«åºŠãªã«ã¹ã¿ãã€ãºã«ã¯ãã©ã€ãã©ãªã®ããŒãèšå®ã·ã¹ãã ã䜿çšããŠããã©ã«ãã¹ã¿ã€ã«ãäžæžãããããæ¢åã®ã³ã³ããŒãã³ããæ¡åŒµããã«ã¹ã¿ã ã³ã³ããŒãã³ããäœæãããã§ããŸãã
5. ããŒãèšå®ãšãã¶ã€ã³ããŒã¯ã³ãå®è£ ãã
ãŠãŒã¶ãŒãç°ãªãèŠèŠã¹ã¿ã€ã«ïŒäŸïŒã©ã€ãã¢ãŒããšããŒã¯ã¢ãŒãïŒãåãæ¿ããããã¢ããªã±ãŒã·ã§ã³ã®å€èгãã«ã¹ã¿ãã€ãºãããã§ããããã«ãããŒãèšå®ãå®è£ ããŸãããã¶ã€ã³ããŒã¯ã³ã¯ããŒãèšå®ã«äžå¯æ¬ ã§ãããã¶ã€ã³ããŒã¯ã³ã䜿çšããŠèŠèŠã¹ã¿ã€ã«ã管çããããŒãèšå®ãé©çšããéã®äžè²«æ§ã確ä¿ããŸãã
äŸïŒã«ã©ãŒãã¬ãããã¿ã€ãã°ã©ãã£ããã®ä»ã®ãã¶ã€ã³å±æ§ãå®çŸ©ããããŒããªããžã§ã¯ããäœæã§ããŸãããã®ããŒããªããžã§ã¯ãã¯ããŒããããã€ããŒã«æž¡ãããšãã§ããã¢ããªã±ãŒã·ã§ã³å ã®ãã¹ãŠã®ã³ã³ããŒãã³ãã«ã¹ã¿ã€ã«ãé©çšãããŸããstyled-componentsãEmotionãªã©ã®CSS-in-JSã©ã€ãã©ãªã䜿çšããŠããå Žåã¯ãã³ã³ããŒãã³ãã¹ã¿ã€ã«å ã§ãã¶ã€ã³ããŒã¯ã³ã«çŽæ¥ã¢ã¯ã»ã¹ã§ããŸãã
6. åå©çšå¯èœãªã³ã³ããŒãã³ããæ§ç¯ãã
æ¢åã®ã³ã³ããŒãã³ããšã«ã¹ã¿ã ã¹ã¿ã€ãªã³ã°ãçµã¿åãããŠãè€éãªUIèŠçŽ ã衚ãåå©çšå¯èœãªã³ã³ããŒãã³ããäœæããŸããåå©çšå¯èœãªã³ã³ããŒãã³ãã¯ãã³ãŒããããæŽçããä¿å®ããããããŸãã倧ããªUIèŠçŽ ããããå°ããåå©çšå¯èœãªã³ã³ããŒãã³ãã«åå²ããŸãã
äŸïŒç»åãã¿ã€ãã«ã説æãæã€ã«ãŒããããå Žåãç»åã®ãœãŒã¹ãã¿ã€ãã«ã説æãpropsãšããŠåãåã`Card`ã³ã³ããŒãã³ããäœæã§ããŸãããã®`Card`ã³ã³ããŒãã³ãã¯ãã¢ããªã±ãŒã·ã§ã³å šäœã§äœ¿çšã§ããŸãã
7. ãã¶ã€ã³ã·ã¹ãã ãšã³ã³ããŒãã³ããææžåãã
äœæãããã¶ã€ã³ã·ã¹ãã ãšã³ã³ããŒãã³ããææžåããŸãã䜿çšäŸãpropsã®èª¬æãã¢ã¯ã»ã·ããªãã£ã«é¢ããèæ ®äºé ãå«ããŸããåªããããã¥ã¡ã³ãã¯ãéçºè ãšãã¶ã€ããŒéã®ã³ã©ãã¬ãŒã·ã§ã³ãä¿é²ããæ°ããããŒã ã¡ã³ããŒãã·ã¹ãã ãçè§£ããŠäœ¿çšããããããŸããStorybookã®ãããªããŒã«ã䜿çšããŠãã³ã³ããŒãã³ããææžåãããã¢ããããšãã§ããŸãã
äŸïŒStorybookã§ã¯ãããŸããŸãªããªãšãŒã·ã§ã³ãpropsãæã€åã³ã³ããŒãã³ãã玹ä»ããã¹ããŒãªãŒãäœæã§ããŸãããŸããåpropsã®ç®çãå©çšå¯èœãªå€ã説æããããã¥ã¡ã³ãã远å ããããšãã§ããŸãã
8. ãã¹ããšå埩
ã³ã³ããŒãã³ããç°ãªããã©ãŠã¶ãããã€ã¹ã§æåŸ ã©ããã«åäœããããšã確èªããããã«ã培åºçã«ãã¹ãããŸãããŠãŒã¶ããªãã£ãã¹ãã宿œããŠãŠãŒã¶ãŒãããã£ãŒãããã¯ãåéããæ¹åç¹ãç¹å®ããŸãããã£ãŒãããã¯ãå€åããèŠä»¶ã«åºã¥ããŠããã¶ã€ã³ã·ã¹ãã ãšã³ã³ããŒãã³ããå埩çã«æ¹åããŸãããã®ããã»ã¹ã®äžç°ãšããŠã¢ã¯ã»ã·ããªãã£ããã¹ããããæ¯æŽæè¡ãå¿ èŠãšãããŠãŒã¶ãŒãšãšãã«ãã¹ãããããšã確èªããŠãã ããã
äŸïŒãŠããããã¹ãã䜿çšããŠãã³ã³ããŒãã³ããæ£ããã¬ã³ããªã³ã°ããããã®æ©èœãæåŸ ã©ããã«åäœããããšã確èªããŸããçµ±åãã¹ãã䜿çšããŠãç°ãªãã³ã³ããŒãã³ããäºãã«æ£ããçžäºäœçšããããšã確èªããŸãããŠãŒã¶ãŒãã¹ãã¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãçè§£ãããŠãŒã¶ããªãã£ã®åé¡ãç¹å®ããããã«äžå¯æ¬ ã§ãã
Reactã³ã³ããŒãã³ãã©ã€ãã©ãªå®è£ ã®ãã¹ããã©ã¯ãã£ã¹
ãããã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ããã¶ã€ã³ã·ã¹ãã å®è£ ã®å質ãšä¿å®æ§ãåäžããŸãïŒ
- å°ããå§ããŠå埩ãã: æå°éã®ã³ã³ããŒãã³ãã»ããããå§ããå¿ èŠã«å¿ããŠåŸã ã«è¿œå ããŠãããŸãããã¶ã€ã³ã·ã¹ãã å šäœãäžåºŠã«æ§ç¯ããããšããªãã§ãã ããã
- ã¢ã¯ã»ã·ããªãã£ãåªå ãã: ãã¹ãŠã®ã³ã³ããŒãã³ããã¢ã¯ã»ã·ãã«ã§ãããã¢ã¯ã»ã·ããªãã£åºæºïŒäŸïŒWCAGïŒãæºãããŠããããšã確èªããŸããããã¯ãå€ãã®å°åã§ã®å æ¬æ§ãšæ³çã³ã³ãã©ã€ã¢ã³ã¹ã«ãšã£ãŠäžå¯æ¬ ã§ãã
- ãã¶ã€ã³ããŒã¯ã³ã广çã«äœ¿çšãã: ãã¶ã€ã³å±æ§ããã¶ã€ã³ããŒã¯ã³ã«éçŽããŠãããŒãèšå®ãšã¹ã¿ã€ã«ã®æŽæ°ã容æã«ããŸãã
- ã³ã³ããŒãã³ãã³ã³ããžã·ã§ã³ã®ååã«åŸã: æ§æå¯èœã§åå©çšå¯èœãªã³ã³ããŒãã³ããèšèšããŸããã«ã¹ã¿ãã€ãºãé£ããã¢ããªã·ãã¯ãªã³ã³ããŒãã³ãã®äœæã¯é¿ããŠãã ããã
- æç¢ºã§ç°¡æœãªã³ãŒããæžã: äžè²«ããã³ãŒãã¹ã¿ã€ã«ãç¶æããçè§£ããããä¿å®ããããã³ãŒããæžããŸããæå³ã®ãã倿°åã䜿çšããå¿ èŠã«å¿ããŠã³ãŒãã«ã³ã¡ã³ããä»ããŸãã
- ãã¹ããèªååãã: ãã°ãæ©æã«çºèŠããã³ã³ããŒãã³ããæåŸ ã©ããã«åäœããããšã確èªããããã«ãèªåãã¹ããå®è£ ããŸããããã«ã¯ããŠããããã¹ããçµ±åãã¹ãããšã³ãããŒãšã³ããã¹ããå«ãŸããŸãã
- ããŒãžã§ã³ç®¡çã䜿çšãã: ããŒãžã§ã³ç®¡çã·ã¹ãã ïŒäŸïŒGitïŒã䜿çšããŠå€æŽã远跡ããä»ã®äººãšå ±åäœæ¥ããŸããããã¯ãã³ãŒãããŒã¹ã管çããå¿ èŠã«å¿ããŠå€æŽãããŒã«ããã¯ããããã«äžå¯æ¬ ã§ãã
- 宿çãªããã¥ã¡ã³ãã®ã¡ã³ããã³ã¹: 倿Žãåæ ããããã«ããã¶ã€ã³ã·ã¹ãã ãšã³ã³ããŒãã³ãã®ããã¥ã¡ã³ãã宿çã«æŽæ°ããŸãã
- åœéåïŒi18nïŒãšå°ååïŒl10nïŒãèæ ®ãã: ã°ããŒãã«ãªäœ¿çšãç®çãšããã¢ããªã±ãŒã·ã§ã³ãéçºããå Žåãæåããi18nãšl10nãèšç»ããŸããå€ãã®ã³ã³ããŒãã³ãã©ã€ãã©ãªã¯ãããã容æã«ããããã®æ©èœãçµ±åãæäŸããŠããŸãã
- äžè²«ããããŒãèšå®æŠç¥ãéžæãã: ããŒãïŒäŸïŒããŒã¯ã¢ãŒããè²ã®ã«ã¹ã¿ãã€ãºïŒãå®è£ ããããã®ãäžè²«æ§ã®ããæç¢ºã«å®çŸ©ãããã¢ãããŒããæ¡çšããŸãã
ãã¶ã€ã³ã·ã¹ãã å®è£ ã«ãããã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã«ãã¶ã€ã³ã·ã¹ãã ãæ§ç¯ããéã¯ã次ã®ç¹ãèæ ®ããŠãã ããïŒ
- ã¢ã¯ã»ã·ããªãã£: WCAGã¬ã€ãã©ã€ã³ïŒWeb Content Accessibility GuidelinesïŒã«æºæ ããäžçäžã®é害ãæã€ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ã§ããããã«ããŸããããã«ã¯ãç»åã«ä»£æ¿ããã¹ããæäŸããããšãã»ãã³ãã£ãã¯HTMLã䜿çšããããšãååãªè²ã®ã³ã³ãã©ã¹ãã確ä¿ããããšãå«ãŸããŸãã
- åœéåïŒi18nïŒãšå°ååïŒl10nïŒ: è€æ°ã®èšèªãšãã±ãŒã«ããµããŒãããããã«ã¢ããªã±ãŒã·ã§ã³ãèšèšããŸãã`react-i18next`ã®ãããªã©ã€ãã©ãªã䜿çšããŠç¿»èš³ã管çãããŠãŒã¶ãŒã®èšèªãšå°åã«åºã¥ããŠãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãé©å¿ãããŸããã¢ã©ãã¢èªãããã©ã€èªãªã©ã®å³ããå·Šãžèšè¿°ããïŒRTLïŒèšèªãèæ ®ããŠãã ããã
- æåçãªé æ ®: ç°ãªãæåã§äžå¿«æãäžãããã誀解ããããããå¯èœæ§ã®ããæåçãªèšåãç»åã®äœ¿çšã¯é¿ããŠãã ãããå°åã®ç¿æ £ã奜ã¿ã«æ³šæããŠãã ããã
- æ¥ä»ãšæå»ã®åœ¢åŒ: ãŠãŒã¶ãŒã®ãã±ãŒã«ã«å¿ããŠæ¥ä»ãšæå»ã®åœ¢åŒãåŠçããŸãã`date-fns`ã`moment.js`ã®ãããªã©ã€ãã©ãªã䜿çšããŠãæ¥ä»ãšæå»ãæ£ãããã©ãŒãããããŸãã
- æ°å€ãšé貚ã®ãã©ãŒããã: æ°å€ãšé貚ããç°ãªãå°åã«é©ãã圢åŒã§è¡šç€ºããŸãã
- å ¥åæ¹æ³: ããŸããŸãªããŒããŒãã¬ã€ã¢ãŠããå ¥åããã€ã¹ïŒäŸïŒã¿ããã¹ã¯ãªãŒã³ïŒãå«ãã倿§ãªå ¥åæ¹æ³ããµããŒãããŸãã
- ã¿ã€ã ãŸãŒã³: æ¥ä»ãæå»ã衚瀺ããããã€ãã³ããã¹ã±ãžã¥ãŒã«ãããããéã¯ãã¿ã€ã ãŸãŒã³ã®éããèæ ®ããŸãã
- ããã©ãŒãã³ã¹: ç¹ã«ã€ã³ã¿ãŒãããæ¥ç¶ãé ããŠãŒã¶ãŒãã¢ãã€ã«ããã€ã¹äžã®ãŠãŒã¶ãŒã®ããã«ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãæé©åããŸããããã«ã¯ãç»åã®é å»¶èªã¿èŸŒã¿ãCSSããã³JavaScriptãã¡ã€ã«ã®ãµã€ãºæå°åãå¹ççãªã¬ã³ããªã³ã°æè¡ã®äœ¿çšãå«ãŸããŸãã
- æ³çã³ã³ãã©ã€ã¢ã³ã¹: ããŒã¿ãã©ã€ãã·ãŒèŠå¶ãªã©ãç°ãªãå°åã®é¢é£ããæ³çèŠä»¶ãèªèããéµå®ããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒUXïŒãã¹ã: ã¢ããªã±ãŒã·ã§ã³ã圌ãã®ããŒãºãšæåŸ ãæºãããŠããããšã確èªããããã«ãç°ãªãå°åã®ãŠãŒã¶ãŒãšãã¹ãããŸããããã«ã¯ããŠãŒã¶ããªãã£ãã¹ãã®å®æœãšãã£ãŒãããã¯ã®åéãå«ãŸããŸãã
äŸïŒæ¥æ¬ã®ãŠãŒã¶ãŒãã¿ãŒã²ããã«ããå Žåãæ¥æ¬ã®ãã©ã³ãããã¶ã€ã³æ £ç¿ã䜿çšããã¢ããªã±ãŒã·ã§ã³ãæ¥æ¬èªããã¹ããæ£ãã衚瀺ããããšã確èªããŸãããšãŒãããã®ãŠãŒã¶ãŒãã¿ãŒã²ããã«ããå Žåãã¢ããªã±ãŒã·ã§ã³ãããŒã¿ãã©ã€ãã·ãŒã«é¢ããGDPRïŒäžè¬ããŒã¿ä¿è·èŠåïŒã«æºæ ããŠããããšã確èªããŸãã
ãã¶ã€ã³ã·ã¹ãã å®è£ ã®ããã®ããŒã«ãšãã¯ãããžãŒ
ããã€ãã®ããŒã«ãšãã¯ãããžãŒãããã¶ã€ã³ã·ã¹ãã ã®å®è£ ããã»ã¹ãå¹çåããŸãïŒ
- Storybook: UIã³ã³ããŒãã³ããææžåãããã¢ããããã®äººæ°ã®ããããŒã«ã§ããStorybookã䜿çšãããšãããŸããŸãªããªãšãŒã·ã§ã³ãpropsãæã€åã³ã³ããŒãã³ãã玹ä»ããã€ã³ã¿ã©ã¯ãã£ããªã¹ããŒãªãŒãäœæã§ããŸãã
- Styled Components/Emotion/CSS-in-JSã©ã€ãã©ãª: JavaScriptã³ãŒãå ã«çŽæ¥CSSãèšè¿°ããããã®ã©ã€ãã©ãªã§ãã³ã³ããŒãã³ãã¬ãã«ã®ã¹ã¿ã€ãªã³ã°ãšããŒãèšå®æ©èœãæäŸããŸãã
- Figma/Sketch/Adobe XD: ãã¶ã€ã³ã·ã¹ãã ã®ã¢ã»ãããäœæã»ç¶æããããã«äœ¿çšããããã¶ã€ã³ããŒã«ã
- ãã¶ã€ã³ããŒã¯ã³ãžã§ãã¬ãŒã¿ãŒ: TheoãStyle Dictionaryãªã©ããã¶ã€ã³ããŒã¯ã³ã®ç®¡çãšçæãæ¯æŽããããŒã«ã
- ãã¹ããã¬ãŒã ã¯ãŒã¯ïŒJestãReact Testing LibraryïŒ: ã³ã³ããŒãã³ãã®æ©èœæ§ãšä¿å®æ§ã確ä¿ããããã®ãŠããããã¹ãããã³çµ±åãã¹ããäœæããããã«äœ¿çšãããŸãã
- åœéåã©ã€ãã©ãªïŒi18nextãreact-intlïŒ: ã¢ããªã±ãŒã·ã§ã³ã®ç¿»èš³ãšå°ååã容æã«ããŸãã
- ã¢ã¯ã»ã·ããªãã£ç£æ»ããŒã«ïŒäŸïŒLighthouseãAxeïŒ: ã³ã³ããŒãã³ãã®ã¢ã¯ã»ã·ããªãã£ããã§ãã¯ããæ¹åããããã«äœ¿çšãããŸãã
é«åºŠãªãããã¯
é«åºŠãªå®è£ ã«ã€ããŠã¯ã以äžã®èæ ®äºé ãæ¢æ±ããŠãã ããïŒ
- ã³ã³ããŒãã³ãã³ã³ããžã·ã§ã³æè¡: render propsãé«éã³ã³ããŒãã³ããchildren propã䜿çšããŠãéåžžã«æè»ã§åå©çšå¯èœãªã³ã³ããŒãã³ããäœæããŸãã
- ãµãŒããŒãµã€ãã¬ã³ããªã³ã°ïŒSSRïŒãšéçãµã€ãçæïŒSSGïŒ: SSRãŸãã¯SSGãã¬ãŒã ã¯ãŒã¯ïŒäŸïŒNext.jsãGatsbyïŒã䜿çšããŠãããã©ãŒãã³ã¹ãšSEOãåäžãããŸãã
- ãã€ã¯ãããã³ããšã³ã: ã¢ããªã±ãŒã·ã§ã³ãããããããå¥ã®Reactã³ã³ããŒãã³ãã©ã€ãã©ãªã䜿çšããå¯èœæ§ã®ãããããå°ããç¬ç«ããŠãããã€å¯èœãªããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã«åå²ããŸãã
- ãã¶ã€ã³ã·ã¹ãã ã®ããŒãžã§ãã³ã°: äžäœäºææ§ãšã¹ã ãŒãºãªç§»è¡ãç¶æããªããããã¶ã€ã³ã·ã¹ãã ã®æŽæ°ãšå€æŽã管çããŸãã
- èªåã¹ã¿ã€ã«ã¬ã€ãçæ: ã³ãŒããšãã¶ã€ã³ããŒã¯ã³ããèªåçã«ã¹ã¿ã€ã«ã¬ã€ããçæããããŒã«ãå©çšããŸãã
çµè«
Reactã³ã³ããŒãã³ãã©ã€ãã©ãªã䜿çšãããã¶ã€ã³ã·ã¹ãã ã®å®è£ ã¯ãäžè²«æ§ããããã¹ã±ãŒã©ãã«ã§ãä¿å®å¯èœãªUIãæ§ç¯ããããã®åŒ·åãªã¢ãããŒãã§ãããã¹ããã©ã¯ãã£ã¹ã«åŸããã°ããŒãã«ãªèŠä»¶ãèæ ®ããããšã§ãäžçäžã®ãŠãŒã¶ãŒã«ããžãã£ããªäœéšãæäŸãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãäœæã§ããŸããå æ¬çã§ã°ããŒãã«ã«ã¢ã¯ã»ã¹å¯èœãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«ãã¢ã¯ã»ã·ããªãã£ãåœéåãæåçãªé æ ®ãåªå ããããšãå¿ããªãã§ãã ããã
ãã¶ã€ã³ã·ã¹ãã ã®ã¡ãªãããæŽ»çšããŠãã ããããã¶ã€ã³ã·ã¹ãã ãå®è£ ããããšã§ããããžã§ã¯ãã®é·æçãªæåã«æè³ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããéçºãµã€ã¯ã«ãå éãããŠããŸãããã®åŽåã¯ååã«äŸ¡å€ããããããè¯ããããä¿å®ãããããã°ããŒãã«ã«ã¢ã¯ã»ã¹å¯èœãªãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãçãŸããŸãã