åºè«: ReactãšUIã©ã€ãã©ãªã®åºæ¬
è¿å¹ŽãWebéçºã®äžçã§äž»åœ¹ãšãªã£ãŠããã®ãJavaScriptã®ãã¬ãŒã ã¯ãŒã¯ã§ããReactã§ããReactã¯Facebookã«ãã£ãŠéçºããããã®å¹çãšããã©ãŒãã³ã¹ã®é«ãããäžçäžã®éçºè ã«æ¡çšãããŠããŸãã
Reactãšã¯äœã: ãã¬ãŒã ã¯ãŒã¯ã®åºæ¬
Reactã¯ãJavaScriptãããŒã¹ã«ãããªãŒãã³ãœãŒã¹ã®ããã³ããšã³ãã©ã€ãã©ãªã§ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ïŒUIïŒãæ§ç¯ããããã®ãã®ã§ããReactã¯ã³ã³ããŒãã³ãããŒã¹ã®ã¢ãŒããã¯ãã£ãæ¡çšããŠãããã³ãŒãã®åå©çšæ§ãé«ããã¡ã³ããã³ã¹ã容æãšããç¹åŸŽããããŸãããŸããä»®æ³DOMãšããæè¡ãå©çšããŠUIã®ã¬ã³ããªã³ã°ãå¹ççã«è¡ããããã©ãŒãã³ã¹ã®åäžãå®çŸããŠããŸãã
UIã©ã€ãã©ãªãšã¯äœã: ãã®éèŠæ§ãšå©çšã·ãŒã³
UIã©ã€ãã©ãªã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãæ§ç¯ããéã«åœ¹ç«ã€ããŒã«ã®éåã§ãããã¿ã³ããã©ãŒã ãããããããŠã³ã¡ãã¥ãŒãªã©ãWebãµã€ããã¢ããªã±ãŒã·ã§ã³ã§é »ç¹ã«äœ¿çšãããèŠçŽ ããããããã³ã³ããŒãã³ããšããŠæäŸããŠããŸããããã«ãããéçºè ã¯UIã®äžéšãäžããäœãå¿ èŠããªããå¹ççã«éçºãé²ããããšãå¯èœã§ãã
ãŸããUIã©ã€ãã©ãªã¯äžè²«æ§ã®ãããã¶ã€ã³ãå®çŸããã®ã«ã圹ç«ã¡ãŸããåãã©ã€ãã©ãªå ã®ã³ã³ããŒãã³ãã¯ããã¶ã€ã³ãçµ±äžãããŠãããããããçµã¿åãããããšã§èªç¶ãªèŠãç®ã®UIãäœãäžããããšãã§ããŸããããã«ããããŠãŒã¶ãŒã«ãšã£ãŠçŽæçã«æäœã§ãã䜿ããããã€ã³ã¿ãŒãã§ãŒã¹ãå®çŸããããšãã§ããŸãã
第äžéš: React UIã©ã€ãã©ãªã®åºæ¬ç¥è
Reactã®å€§ããªé åã®äžã€ã¯ããã®åŒ·åãªãšã³ã·ã¹ãã ã§ããæ°å€ãã®ããŒã«ãã©ã€ãã©ãªãéçºè ã®ããã«çšæãããŠããããã®äžã§ãç¹ã«æ³šç®ãã¹ãååšãReact UIã©ã€ãã©ãªã§ãã
React UIã©ã€ãã©ãªãšã¯
React UIã©ã€ãã©ãªãšã¯ãReactã䜿ã£ãŠéçºãè¡ãéã«äœ¿çšãããããŒã«ã®äžã€ã§ãäžè¬çã«ã¯UIã³ã³ããŒãã³ãã®éåäœãæããŸãããããã®ã©ã€ãã©ãªã¯ãã¿ã³ããã©ãŒã ãã¡ãã¥ãŒããŒãªã©ãæ¥åžžçã«äœ¿çšãããUIã³ã³ããŒãã³ããé«åºŠã«ã«ã¹ã¿ãã€ãºå¯èœãªåœ¢ã§æäŸããŠããŸãã
React UIã©ã€ãã©ãªã¯Reactã®ã³ã³ããŒãã³ãæèãšçµã¿åãããããšã§ããã®ç䟡ãçºæ®ããŸãããã§ã«äœãããã³ã³ããŒãã³ããçµã¿åãããŠæ°ããã€ã³ã¿ãŒãã§ãŒã¹ãäœãåºãããšã§ãéçºè ã¯æéãšãªãœãŒã¹ãå€§å¹ ã«ç¯çŽããããšãã§ããŸãã
React UIã©ã€ãã©ãªã®ç¹åŸŽãšã¡ãªãã
React UIã©ã€ãã©ãªã«ã¯æ°å€ãã®ç¹åŸŽãšã¡ãªããããããŸãããŸã第äžã«ãã³ã³ããŒãã³ãã®åå©çšæ§ããããŸããäžåºŠäœã£ãã³ã³ããŒãã³ãã¯ããã®ãŸãŸãŸãå¥ã®å Žæã§åå©çšããããšãã§ããã³ãŒãã®éè€ãé²ããŸãã
第äºã«ãã³ã³ããŒãã³ãéã®äžè²«æ§ã確ä¿ãããŸããåãã©ã€ãã©ãªããæäŸãããã³ã³ããŒãã³ãã¯ããã¶ã€ã³èšèªãçµ±äžãããŠãããããç°ãªãã³ã³ããŒãã³ãã§ãäžè²«æ§ã®ããUIãæäŸããããšãã§ããŸãã
第äžã«ãå¹ççãªéçºãå¯èœãšãªããŸããæ¢è£œã®ã³ã³ããŒãã³ãã䜿çšããããšã§ãããŒã¹ãšãªãUIãçŽ æ©ãæ§ç¯ããããšãã§ããŸããããã«ãããéçºè ã¯ããå ·äœçãªåé¡è§£æ±ºããŠãŒã¶ãŒäœéšã®åäžã«æ³šåããããšãã§ããŸãã
ãããã®ç¹åŸŽãšã¡ãªããã¯ãReact UIã©ã€ãã©ãªãä»æ¥ã®éçºç°å¢ã§æ¬ ãããªãããŒã«ãšãªã£ãŠããçç±ãæ確ã«ç€ºããŠããŸãã
第äºéš: 人æ°ã®React UIã©ã€ãã©ãªã®çŽ¹ä»
React UIã©ã€ãã©ãªã®é åãç解ãããšããã§ãããã€ãã®äž»èŠãªã©ã€ãã©ãªãå ·äœçã«çŽ¹ä»ããŸãããããããã®ã©ã€ãã©ãªã¯ããããç°ãªãç¹æ§ãšå©ç¹ãæã£ãŠããããããžã§ã¯ãã®èŠä»¶ãç®çã«ããéžæãå€ããã§ãããã
Material-UI: é«æ©èœãªã³ã³ããŒãã³ãã©ã€ãã©ãª
Material-UIã¯ãGoogleã®Material Designæéã«åºã¥ããReact UIã©ã€ãã©ãªã®äžã€ã§ããè±å¯ãªã³ã³ããŒãã³ããšã«ã¹ã¿ãã€ãºå¯èœæ§ãåªããããã©ãŒãã³ã¹ãç¹åŸŽã§ãã°ããŒãã«ãªéçºè ã³ãã¥ããã£ããåºãæ¯æãããŠããŸãã
Ant Design: äŒæ¥åãã®æçããUIã©ã€ãã©ãª
Ant Designã¯ãäŒæ¥åãã®æçããUIã©ã€ãã©ãªã§ãããã®ãã¶ã€ã³ã®äžè²«æ§ãšé«å質ãªã³ã³ããŒãã³ãã¯ãããžãã¹ã¢ããªã±ãŒã·ã§ã³ã®éçºã«ç¹ã«é©ããŠããŸãããŸããåœéåã®ãµããŒãã匷åã§ãå€èšèªå¯Ÿå¿ã¢ããªã±ãŒã·ã§ã³ã®éçºã«åœ¹ç«ã¡ãŸãã
React Bootstrap: BootstrapãReactã§äœ¿ãããã®ã©ã€ãã©ãª
React Bootstrapã¯ã人æ°ã®ããBootstrapãã¬ãŒã ã¯ãŒã¯ãReactãšçµã¿åãããããã®ã©ã€ãã©ãªã§ããBootstrapã®åŒ·åãªã°ãªããã·ã¹ãã ãæŽç·Žãããã³ã³ããŒãã³ãããReactã®ã³ã³ããŒãã³ãæèã®éçºãããŒã§å©çšã§ããŸãã
ãã®ä»ã®æ³šç®ã®UIã©ã€ãã©ãª
ä»ã«ãå€ãã®React UIã©ã€ãã©ãªãååšããŸããChakra UIã¯ã¢ã¯ã»ã·ããªãã£ãšã«ã¹ã¿ãã€ãºã®ããããã«çŠç¹ãåœãŠãŠããŸããSemantic UI Reactã¯ãŠãŒã¶ãŒãã¬ã³ããªãŒã§çŽæçãªãã¶ã€ã³ãæäŸããEvergreenã¯ãšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³åãã®ãã¬ãã·ãã«ãªã©ã€ãã©ãªãšããŠç¥ãããŠããŸãã
ã©ã®ã©ã€ãã©ãªãéžã¶ãã¯ããããžã§ã¯ãã®èŠä»¶ãæåŸ ããããŠãŒã¶ãŒäœéšãããŒã ã®æè¡çãªã¹ãã«ã»ãããªã©ãæ§ã ãªèŠå ã«ãããŸããç¬èªã®èª¿æ»ãè¡ããåã©ã€ãã©ãªã®ããã¥ã¡ã³ããŒã·ã§ã³ã確èªããŠãæé©ãªéžæãè¡ããŸãããã
第äžéš: React UIã©ã€ãã©ãªã®å®éçãªäœ¿çšæ¹æ³
ãããŸã§ã®ã»ã¯ã·ã§ã³ã§ã¯ãReact UIã©ã€ãã©ãªã®åºæ¬çãªç解ãšãã®éèŠæ§ã«ã€ããŠåŠã³ãŸããã次ã«ããããã®ã©ã€ãã©ãªãã©ã®ããã«äœ¿çšããã®ããåºæ¬çãªå®è£ æ¹æ³ãèŠãŠãããŸãããã
ç°å¢èšå®: å¿ èŠãªããŒã«ã®ã€ã³ã¹ããŒã«ãšèšå®
React UIã©ã€ãã©ãªã䜿çšããããã®ç¬¬äžæ©ã¯ãå¿ èŠãªããŒã«ã®ã€ã³ã¹ããŒã«ã§ããããã¯éåžžãnpmïŒNode Package ManagerïŒãŸãã¯yarnãšãã£ãããã±ãŒãžãããŒãžã£ã䜿ã£ãŠè¡ããŸããäŸãã°ãMaterial-UIãã€ã³ã¹ããŒã«ããå Žåã¯ä»¥äžã®ãããªã³ãã³ããå®è¡ããŸãã
npm install @material-ui/core
次ã«ãReactã¢ããªã±ãŒã·ã§ã³å ã§ã©ã€ãã©ãªãã€ã³ããŒãããŸããããã«ãããã©ã€ãã©ãªã®åã³ã³ããŒãã³ãã䜿çšã§ããããã«ãªããŸãã
åºæ¬çãªã³ã³ããŒãã³ãã®äœ¿ãæ¹: ãã¿ã³ããã©ãŒã ãªã©
React UIã©ã€ãã©ãªã®å€§éšåã¯ã³ã³ããŒãã³ãããŒã¹ã§èšèšãããŠããŸããã€ãŸãããã¿ã³ããã©ãŒã ããã€ã¢ãã°ãªã©ã®åçš®UIèŠçŽ ãåã ã®ã³ã³ããŒãã³ããšããŠå©çšã§ããŸãããããã®ã³ã³ããŒãã³ãã¯ãéåžžã®Reactã³ã³ããŒãã³ããšåæ§ã«ãJSXå ã§äœ¿çšã§ããŸãã以äžã«ããã¿ã³ã³ã³ããŒãã³ãã®äœ¿çšäŸã瀺ããŸãã
import Button from '@material-ui/core/Button'; function App() { return ( ); } export default App;
ã«ã¹ã¿ãã€ãº: æ¢åã³ã³ããŒãã³ãã®ã«ã¹ã¿ãã€ãºæ¹æ³
React UIã©ã€ãã©ãªã¯ã«ã¹ã¿ãã€ãºãå¯èœã§ãæ¢åã®ã³ã³ããŒãã³ãããããžã§ã¯ãã®èŠä»¶ã«åãããŠèª¿æŽã§ããŸããã«ã¹ã¿ãã€ãºæ¹æ³ã¯ã©ã€ãã©ãªã«ãããŸãããéåžžã¯ã³ã³ããŒãã³ãã®propsïŒããããã£ïŒãéããŠã¹ã¿ã€ã«ãæ¯ãèããå€æŽããŸããäŸãã°ãMaterial-UIã§ã¯ä»¥äžã®ããã«ãã¿ã³ã®è²ãã«ã¹ã¿ãã€ãºã§ããŸãã
ãŸããCSS-in-JSãSassãªã©ã®ã¹ã¿ã€ãªã³ã°ææ³ã䜿çšããŠãããé«åºŠãªã«ã¹ã¿ãã€ãºãå¯èœã§ãã
以äžãReact UIã©ã€ãã©ãªã®åºæ¬çãªäœ¿çšæ¹æ³ã«ãªããŸãããããã®åºæ¬ãç解ããã°ãããŸããŸãªUIã©ã€ãã©ãªãå¹æçã«å©çšããUIéçºãå¹çåããããšãã§ããŸãã
第åéš: React UIã©ã€ãã©ãªã䜿ã£ããããžã§ã¯ãã®äŸ
React UIã©ã€ãã©ãªã®åºæ¬çãªäœ¿ãæ¹ãåŠãã ãšããã§ã次ã«ãå®éã®ãããžã§ã¯ãã§ã©ã®ããã«ãããã掻çšãããŠããã®ãã«ã€ããŠèŠãŠã¿ãŸãããã
å®éã®ãããžã§ã¯ãã§ã®UIã©ã€ãã©ãªã®äœ¿çšäŸ
React UIã©ã€ãã©ãªã¯ãå®éã®ãããžã§ã¯ãã§åºã䜿çšãããŠããŸããäŸãã°ã倧èŠæš¡ãªWebã¢ããªã±ãŒã·ã§ã³ã®ããã³ããšã³ãéçºã§ã¯ãæéãšæéãå€§å¹ ã«åæžããããã«ãMaterial-UIãAnt Designãšãã£ãã©ã€ãã©ãªããã䜿çšãããŸãããããã®ã©ã€ãã©ãªã䜿çšããããšã§ãéçºè ã¯ã³ãŒãã®åå©çšæ§ãåäžãããäžè²«ããUIãç°¡åã«å®è£ ããããšãã§ããŸãã
ãããžã§ã¯ãã«é©ããUIã©ã€ãã©ãªã®éžã³æ¹
React UIã©ã€ãã©ãªãéžæããéã«ã¯ããããžã§ã¯ãã®ããŒãºã«æãé©ãããã®ãéžã¶ããšãéèŠã§ããäŸãã°ãè±å¯ãªã³ã³ããŒãã³ããšé«åºŠãªã«ã¹ã¿ãã€ãºæ§ãå¿ èŠãšãã倧èŠæš¡ãªãããžã§ã¯ãã§ã¯ãMaterial-UIãAnt Designãè¯ãéžæè¢ãšãªãã§ããããäžæ¹ãBootstrapã®ãããªæ¢åã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãããããŸãã¯ã·ã³ãã«ã§è»œéãªã©ã€ãã©ãªãå¿ èŠãªå Žåã¯ãReact-BootstrapãSemantic UI Reactãé©ããŠããŸãã
ã©ã€ãã©ãªãéžã¶éã«ã¯ã以äžã®ãããªèŠçŽ ãèæ ®ãããšè¯ãã§ãããã
- ã©ã€ãã©ãªãæäŸããã³ã³ããŒãã³ãã®çš®é¡ãšé
- ã«ã¹ã¿ãã€ãºæ§ãšæ¡åŒµæ§
- ã³ãã¥ããã£ã®æŽ»çºããšããã¥ã¡ã³ããŒã·ã§ã³ã®è³ª
- ãããžã§ã¯ãã®èŠæš¡ãšèŠä»¶
以äžã®ããã«ãReact UIã©ã€ãã©ãªã¯éçºã®å¹çåãšå質åäžã«å€§ãã«å¯äžããããŒã«ã§ãããããžã§ã¯ãã®èŠä»¶ãšç®æšã«åãããŠæé©ãªã©ã€ãã©ãªãéžæãããã®åãæ倧éã«æŽ»çšããŠãã ããã
çµè«: å¹ççãªéçºã®ããã®React UIã©ã€ãã©ãª
ãã®èšäºãéããŠãReact UIã©ã€ãã©ãªã®éèŠæ§ãšãã®æŽ»çšæ¹æ³ã«ã€ããŠåŠãã§ããŸãããããã§ã¯æåŸã«ããã®åœ¹å²ãšäŸ¡å€ããããŠããªãã®æ¬¡ã®ã¹ãããã«ã€ããŠèããŠã¿ãŸãããã
React UIã©ã€ãã©ãªã®åœ¹å²ãšäŸ¡å€
React UIã©ã€ãã©ãªã¯ãããã³ããšã³ãéçºãå¹çåããäžè²«æ§ã®ãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãç°¡åã«äœæããããã®åŒ·åãªããŒã«ã§ããè±å¯ãªã³ã³ããŒãã³ããæäŸããããšã§ãéçºè ã¯äžããå šãŠãäœãå¿ èŠãªããæ¢åã®ã³ã³ããŒãã³ãã掻çšããŠçŽ æ©ãé«å質ãªUIãäœæããããšãå¯èœã«ãªããŸãã
ããªãã®æ¬¡ã®ã¹ããã: UIã©ã€ãã©ãªã掻çšããéçº
ãããŠããªãã®æ¬¡ã®ã¹ãããã¯äœã§ããããïŒãããŸã React UIã©ã€ãã©ãªã掻çšããããšããªããªãããããå§ããããšã匷ãããããããŸããç°¡åãªãããžã§ã¯ãããå§ããŠã¿ãã®ãè¯ãã§ãããããããŠããããã®ã©ã€ãã©ãªã®ããã¥ã¡ã³ããŒã·ã§ã³ãèªãã§ããã®ç¹æ§ãæäŸããã³ã³ããŒãã³ãã䜿ãæ¹ãåŠã³ãŸãããã
ããªãããã§ã«React UIã©ã€ãã©ãªã䜿ãããªããŠããã®ã§ããã°ãæ°ããªã©ã€ãã©ãªãè©Šããããããæ·±ãæãäžããŠã«ã¹ã¿ãã€ãºã®æ¹æ³ãåŠã¶ãªã©ããããªãã¹ãã«ã¢ãããç®æãããšãå¯èœã§ãã
ã©ã®ã¹ããŒãžã«ããŠããReact UIã©ã€ãã©ãªã¯ããªãã®ããã³ããšã³ãéçºãå¹çåããããè¯ããããã¯ããäœãåºãããã®å©ããšãªãã§ãããããã®åã掻çšããŠãããåªããWebéçºè ã«ãªãããšãé¡ã£ãŠããŸãã