ä¿¡ããããªãã»ã©ã®èªããšå®å¿ãæã£ãŠãç§ãã¡ã¯ä»å€ã Reactã«é¢ããæ°ããæ¬ãå°å·æã«ææž¡ããŸããã
ãã®æ©äŒã«ããã³ã»ã¢ãã©ã¢ãã«ããèšäºã®ãããã«èŠçŽããã翻蚳ãæäŸããŸãã ç§ãã¡èªèº«ããã§ã«æ¥œãã¿ã«ããŠããæ¬ã«ã€ããŠã¯ã第5ç« ã§èª¬æããŠããŸãã
å é±ã Sophie Alpertãšç§ã¯React ConfäŒè°ã§ãã€ã³ã¿ãŒã»ãã¿ãŒãã®æŠå¿µã玹ä»ããç¶ããŠRyan Florenceããã®ãããã¯ã®è©³çŽ°ãªè°è«ãè¡ããŸãã ã
ã€ã³ã¿ãŒã»ãã¿ãŒã®å©ããåããŠè§£æ±ºããããšããŠããåé¡ã®ç¯å²ãç解ããããã«ããã®å šäœè¬çŸ©ãã芧ã«ãªãããšã匷ããå§ãããŸãã ããããç§ã¯ããªãã®æéãéåžžã«é«ãè©äŸ¡ããŠããããããã®èšäºã§ã¯ã€ã³ã¿ãŒã»ãã¿ãŒã«é¢ããäž»ãªèæ ®äºé ãç°¡åã«èª¬æããããšã«ããŸããã
泚ïŒReactã€ã³ã¿ãŒã»ãã¿ãŒã¯ãŸã å®éšæ®µéã§ãã ä»ããããæãäžããå¿ èŠã¯ãããŸããã ãŸãããã®åºçç©ã¯ç§ã®å人çãªèŠè§£ã瀺ããŠããããšã«æ³šæããŠãã ãããããã¯Reactéçºè ã®ç«å ŽãšäžèŽããªããããããŸãããã€ã³ã¿ãŒã»ãã¿ãŒãå¿ èŠãªçç±
ã³ã³ããŒãã³ãã®ç·šæãšããŠã³ã¹ããªãŒã ã®ããŒã¿ãããŒã¯ã倧ããªUIãå°ããç¬ç«ããåå©çšå¯èœãªãã©ã°ã¡ã³ãã®åœ¢åŒã§ç·šæããã®ã«åœ¹ç«ã€ããšãç¥ãããŠããŸãã ãã ããããžãã¯ã¯ç¶æ ãä¿æããé¢æ°ãŸãã¯ä»ã®ã³ã³ããŒãã³ãã«æœåºã§ããªããããç¹å®ã®å¶éãè¶ ããè€éãªã³ã³ããŒãã³ããåå²ããããšã¯ã§ããŸãã ã Reactããè·ååé¢ããéæã§ããªããšèšã人ã¯ãããã«ã€ããŠäžæºãèšãããšããããŸãã
ãã®ãããªã±ãŒã¹ã¯éåžžã«äžè¬çã§ãããããšãã°ãã¢ãã¡ãŒã·ã§ã³ããã©ãŒã åŠçãå€éšããŒã¿ãœãŒã¹ãžã®æ¥ç¶ãããã³ã³ã³ããŒãã³ãã§å®è¡ããå¿ èŠã®ããä»ã®å€ãã®æäœã«é¢é£ä»ããããŠããŸãã ã³ã³ããŒãã³ãã ãã®å©ããåããŠãã®ãããªåé¡ã解決ããããšãããšãéåžžã
- ãªãã¡ã¯ã¿ãªã³ã°ãšãã¹ããé£ãã巚倧ãªã³ã³ããŒãã³ã ã
- ããŸããŸãªã³ã³ããŒãã³ããšã©ã€ããµã€ã¯ã«ã¡ãœããéã®ããžãã¯ã®è€è£œ ã
- è€éãªãã¿ãŒã³ ãç¹ã«ãå°éå ·ãé«æ¬¡ã³ã³ããŒãã³ãã®ã¬ã³ããªã³ã°ã
ããããã¹ãŠã®åé¡ã解決ããã«ã¯ãã€ã³ã¿ãŒã»ãã¿ãŒãæãææã§ãããšèããŠããŸãã ã€ã³ã¿ãŒã»ãã¿ãŒã¯ãã³ã³ããŒãã³ãå ã®ããžãã¯ãåå©çšå¯èœãªåé¢ãŠãããã®åœ¢åŒã§æŽçããã®ã«åœ¹ç«ã¡ãŸã ã
ã€ã³ã¿ãŒã»ãã¿ãŒã¯ãRââeactã®å²åŠïŒæ瀺çãªããŒã¿ãããŒãšæ§æïŒã«æ²¿ã£ãŠãããã³ã³ããŒãã³ãéã ãã§ãªããã³ã³ããŒãã³ãå ã«ãããŸã ã ãããã€ã³ã¿ãŒã»ãã¿ãŒãReactã³ã³ããŒãã³ãã¢ãã«ã«èªç¶ã«é©åããããã«æããçç±ã§ãã
ã¬ã³ããªã³ã°ããããã£ãé«æ¬¡ã³ã³ããŒãã³ããªã©ã®ãã¿ãŒã³ãšã¯ç°ãªããã¹ããã¡ãŒã¯äžå¿ èŠã«æ·±ãæ·»ä»ãã¡ã€ã«ã§ã³ã³ããŒãã³ãããªãŒã«è² æ ããããŸããã ãŸããäžçŽç©ã«åºæã®æ¬ ç¹ããããŸããã
äžèŠã€ã³ã¿ãŒã»ãã¿ãŒãã¯ãŒããããšããŠãïŒæåã¯ç§ãšåãããã«ïŒïŒãã®ãªãã·ã§ã³ã«ãã£ã³ã¹ãäžããŠå®éšããããšããå§ãããŸãã æ°ã«å ¥ã£ãŠããã ãããšæããŸãã
Reactã¯ã€ã³ã¿ãŒã»ãã¿ãŒã«ããèšåŒµã§ããïŒ
ã€ã³ã¿ãŒã»ãã¿ãŒã®è©³çŽ°ã説æãããŸã§ã¯ãReactã§ã€ã³ã¿ãŒã»ãã¿ãŒãè¿œå ããããšã¯ãšã³ãã£ãã£ã®åãªãä¹ç®ã§ãããšå¿é ãããããããŸããã ããã¯å ¬æ£ãªæ¹å€ã§ãã ç§ã¯ãããèããŸãïŒçæçã«ã¯ãããªãã¯ïŒããããç 究ããããã«ïŒäœåãªèªç¥çè² è·ãæ¬åœã«æããŸãããæçµçã«ã¯æ°åãè¯ããªãã ãã§ãã
ã€ã³ã¿ãŒã»ãã¿ãŒãReactã³ãã¥ããã£ãŒã«æ ¹ä»ããå Žåãå®éã«ã¯ãReactã¢ããªã±ãŒã·ã§ã³ãäœæãããšãã«ç®¡çããå¿ èŠã®ãããšã³ãã£ãã£ã®æ°ãæžããŸãã ã€ã³ã¿ãŒã»ãã¿ãŒã䜿çšãããšãé¢æ°ãã¯ã©ã¹ãé«æ¬¡ã³ã³ããŒãã³ããã³ã³ããŒãã³ãã¬ã³ããªã³ã°ãåãæ¿ããã®ã§ã¯ãªããåžžã«é¢æ°ã䜿çšã§ããŸãã
å®è£ ãµã€ãºã®å¢å ã«é¢ããŠã¯ãã€ã³ã¿ãŒã»ãã¿ãŒããµããŒãããReactã¢ããªã±ãŒã·ã§ã³ã¯çŽ1.5kBïŒå+ gzipïŒã ãå¢å ããŸãã ããèªäœã¯ããã»ã©å€ãã¯ãããŸããã ãã€ã³ã¿ãŒã»ãã¿ãŒã³ãŒãã¯éåžžãã¯ã©ã¹ã䜿çšããåçã®ã³ãŒããããé©åã«çž®å°ããããããã€ã³ã¿ãŒã»ãã¿ãŒã䜿çšãããšãã¢ã»ã³ããªã®ãµã€ãºãå°ãããªãå¯èœæ§ãéåžžã«é«ããªããŸãã 次ã®äŸã¯å°ã極端ã§ããããã¹ãŠãããã§ããçç±ãæ確ã«ç€ºããŠããŸã ïŒ ã¯ãªãã¯ããŠã¹ã¬ããå šäœãå±éããŸãïŒã
ã€ã³ã¿ãŒã»ãã¿ãŒã®ææ¡ã«é©åœçãªå€æŽã¯ãããŸãã ã æ°ããã³ã³ããŒãã³ãã§ã€ã³ã¿ãŒã»ãã¿ãŒã䜿çšãå§ããŠããã³ãŒãã¯æ£åžžã«æ©èœããŸãã å®éãããã¯ãŸãã«ç§ãã¡ãæšå¥šãããã®ã§ããã°ããŒãã«ã«äœãæžãæããªãã§ãã ããïŒ ãã¹ãŠã®éèŠãªã³ãŒãã§ã€ã³ã¿ãŒã»ãã¿ãŒã®äœ¿çšã確ç«ããããŸã§åŸ ã€ã®ãè³¢æã§ãããã ããã§ããã¢ã«ãã¡ããŒãžã§ã³16.7ãè©ŠããŠã ã€ã³ã¿ãŒã»ãã¿ãŒã®ææ¡ã«ã€ããŠã®ãã£ãŒãããã¯ãæ®ãããã°ãå ±åããŠããã ããã°å¹žãã§ãã
ã€ã³ã¿ãŒã»ãã¿ãŒãšã¯äœã§ããïŒ
ã€ã³ã¿ãŒã»ãã¿ãŒãäœã§ããããç解ããã«ã¯ãäžæ©æ»ã£ãŠãã³ãŒãã®åå©çšãšã¯äœããèããå¿ èŠããããŸãã
çŸåšãReactã¢ããªã±ãŒã·ã§ã³ã§ããžãã¯ãåå©çšããæ¹æ³ã¯æ°å€ããããŸãã ãããã£ãŠãäœããèšç®ããããã«ãåçŽãªé¢æ°ãäœæããŠããåŒã³åºãããšãã§ããŸãã ãŸããã³ã³ããŒãã³ãïŒããèªäœãé¢æ°ãŸãã¯ã¯ã©ã¹ã«ãªããŸãïŒãäœæããããšãã§ããŸãã ã³ã³ããŒãã³ãã¯ãã匷åã§ããããããã䜿çšããå ŽåãUIã衚瀺ããå¿ èŠããããŸãã ãããã£ãŠãã³ã³ããŒãã³ãã䜿çšãããšãéããžã¥ã¢ã«ããžãã¯ãéä¿¡ããã®ã«äžäŸ¿ã§ãã ãã®ãããã¬ã³ããªã³ã°ããããã£ãé«æ¬¡ã³ã³ããŒãã³ããªã©ã®è€éãªãã¿ãŒã³ã«ãªããŸãã Reactã¯ãã³ãŒããåå©çšããäžè¬çãªæ¹æ³ã1ã€ãããªããŠãããã»ã©ç°¡åã§ã¯ãªãã®ã§ã¯ãªãã§ããããïŒ
é¢æ°ã¯åå©çšå¯èœãªã³ãŒãã«æé©ã®ããã§ãã é¢æ°éã§ããžãã¯ãæž¡ãããšã¯æãå®äŸ¡ã§ãã ãã ããReactã®ããŒã«ã«ç¶æ ã¯é¢æ°å ã«ä¿åã§ããŸããã ã³ãŒããåæ§ç¯ããããObservablesãªã©ã®æœè±¡åãå°å ¥ãããããã«ãã³ã³ããŒãã³ãã³ã³ããŒãã³ãããããŠã£ã³ããŠãµã€ãºã®è¿œè·¡ãšç¶æ ã®æŽæ°ãããå€ã®ã¢ãã¡ãŒã·ã§ã³åããªã©ã®åäœãæœåºããããšã¯ã§ããŸããã ã©ã¡ãã®ã¢ãããŒããã³ãŒããè€éã«ããã ãã§ãããReactã¯ãã®ã·ã³ãã«ãã§ç§ãã¡ã«ãšã£ãŠçŽ æŽããããã®ã§ãã
ã€ã³ã¿ãŒã»ãã¿ãŒã¯ãŸãã«ãã®åé¡ã解決ããŸãã ã€ã³ã¿ãŒã»ãã¿ãŒã®ãããã§ãé¢æ°ããReactæ©èœïŒããšãã°ãç¶æ ïŒã䜿çšã§ããŸãïŒ1åã ãåŒã³åºãããšã§ïŒã Reactã¯ãReactããªãã¯ã«å¯Ÿå¿ããããã€ãã®çµã¿èŸŒã¿ã€ã³ã¿ãŒã»ãã¿ãŒãæäŸããŸãïŒç¶æ ãã©ã€ããµã€ã¯ã«ãããã³ã³ã³ããã¹ãã
ã€ã³ã¿ãŒã»ãã¿ãŒã¯éåžžã®JavaScripté¢æ°ã§ãããããReactã§æäŸãããçµã¿èŸŒã¿ã€ã³ã¿ãŒã»ãã¿ãŒãçµã¿åãããŠããã€ãã£ãã€ã³ã¿ãŒã»ãã¿ãŒããäœæã§ããŸã ã ãããã£ãŠãè€éãªåé¡ã¯1è¡ã®ã³ãŒãã§è§£æ±ºã§ããã¢ããªã±ãŒã·ã§ã³ã§ãããæããããReactã³ãã¥ããã£ã§å ±æãããã§ããŸãã
泚æïŒå³å¯ã«èšãã°ãç¬èªã®ã€ã³ã¿ãŒã»ãã¿ãŒã¯Reactã®æ©èœã«ã¯å«ãŸããŸããã ç¬èªã®ã€ã³ã¿ãŒã»ãã¿ãŒãäœæããæ©èœã¯ãåœç¶ãéåžžã«å éšçãªçµç¹ã«ç±æ¥ããŸãã
ã³ãŒããèŠããŠãã ããïŒ
ã³ã³ããŒãã³ããçŸåšã®ãŠã£ã³ããŠå¹ ã«ãµãã¹ã¯ã©ã€ãããããšããŸãïŒããšãã°ãä»ã®ã³ã³ãã³ãã衚瀺ãããã衚瀺é åãçããããããããïŒã
ä»æ¥ãåæ§ã®ã³ãŒããããã€ãã®æ¹æ³ã§æžãããšãã§ããŸãã ããšãã°ãã¯ã©ã¹ãäœæããã«ã¯ãããã€ãã®ã©ã€ããµã€ã¯ã«ã¡ãœãããäœæããŸãããŸãã¯ãããããã£ã®ã¬ã³ããªã³ã°ã«é Œã£ãããåå©çšãåžæããå Žåã¯é«æ¬¡ã®ã³ã³ããŒãã³ããé©çšãããããããšãã§ããŸãã ãã ããããã«å¹æµãããã®ã¯ãªããšæããŸãã
gist.github.com/gaearon/cb5add26336003ed8c0004c4ba820eae
ãã®ã³ãŒããèªãã å Žåãããã¯ãŸãã«ãããèšãããšãããããšãæå³ããŸã ã ã³ã³ããŒãã³ãå ã®ãŠã£ã³ããŠã®å¹ ã䜿çšããReactã¯ã³ã³ããŒãã³ããå€æŽãããå Žåã«ã³ã³ããŒãã³ããåæç»ããŸãã ããã¯ã€ã³ã¿ãŒã»ãã¿ãŒããŸãã«å¿ èŠãªãã®ã§ã-ç¶æ ãå¯äœçšãå«ãŸããŠããå Žåã§ããã³ã³ããŒãã³ããæ¬åœã«å®£èšçã«ããããã«ã
ãã®ç¬èªã®ã€ã³ã¿ãŒã»ãã¿ãŒãå®è£ ããæ¹æ³ãæ€èšããŠãã ããã ããŒã«ã«ã®Reactç¶æ ã䜿çšããŠçŸåšã®ãŠã£ã³ããŠã®å¹ ãç¶æããå¯äœçšã䜿çšããŠãŠã£ã³ããŠã®ãµã€ãºãå€æŽãããšãã®ç¶æ ãèšå®ã§ããŸãã
gist.github.com/gaearon/cb5add26336003ed8c0004c4ba820eae
äžèšã®ããã«ã
useState
ã
useEffect
ãªã©ã®Reactã®çµã¿èŸŒã¿ã€ã³ã¿ãŒã»ãã¿ãŒã¯
useState
ãšããŠæ©èœããŸãã ã³ã³ããŒãã³ãããçŽæ¥äœ¿çšããããšãã
useWindowWidth
ãªã©ã®ç¬èªã®ã€ã³ã¿ãŒã»ãã¿ãŒãã¢ã»ã³ãã«ããããšãã§ããŸãã ç¬èªã®ã€ã³ã¿ãŒã»ãã¿ãŒã䜿çšããããšã¯ãçµã¿èŸŒã¿ã®React APIãæäœããããšãšåãããã«æ £çšçã§ãã
ãã®ã¬ãã¥ãŒã§çµã¿èŸŒã¿ã€ã³ã¿ãŒã»ãã¿ãŒã®è©³çŽ°ããèªã¿ãã ããã
ã€ã³ã¿ãŒã»ãã¿ãŒã¯ã«ãã»ã«åãããŸã-ã€ã³ã¿ãŒã»ãã¿ãŒãåŒã³åºããããã³ã«ãçŸåšå®è¡äžã®ã³ã³ããŒãã³ãå ã®åé¢ãããããŒã«ã«ç¶æ ãåãåããŸãã ãã®ç¹å®ã®äŸã§ã¯ãããã¯éèŠã§ã¯ãããŸããïŒãŠã£ã³ããŠã®å¹ ã¯ãã¹ãŠã®ã³ã³ããŒãã³ãã§åãã§ãïŒïŒããããããããã€ã³ã¿ãŒã»ãã¿ãŒã®åšåã«ããã£ãŠããŸãã ãããã¯ãç¶æ ã§ã¯ãªããç¶æ ãä¿æããããžãã¯ãåé¢ããããšãç®çãšããŠããŸãã ããŠã³ã¹ããªãŒã ããŒã¿ã¹ããªãŒã ãäžæããããããŸããïŒ
åã€ã³ã¿ãŒã»ãã¿ãŒã«ã¯ãããŒã«ã«ç¶æ ãšå¯äœçšãå«ãŸããå ŽåããããŸãã é¢æ°éã§éåžžè¡ãããŠããããã«ãè€æ°ã®ã€ã³ã¿ãŒã»ãã¿ãŒéã§ããŒã¿ã転éã§ããŸãã JavaScripté¢æ°ã§ãããããåŒæ°ãåãå€ãè¿ãããšãã§ããŸãã
以äžã¯ãã€ã³ã¿ãŒã»ãã¿ãŒãè©ŠãReactã¢ãã¡ãŒã·ã§ã³ã©ã€ãã©ãªã®äŸã§ã ã
衚瀺ãããŠãããœãŒã¹ã³ãŒãã§èŠäºãªã¢ãã¡ãŒã·ã§ã³ãå®è£ ãããŠããããšã«æ³šç®ããŠãã ãããåãã¬ã³ããªã³ã°é¢æ°å ã®è€æ°ã®ãã€ãã£ãã€ã³ã¿ãŒã»ãã¿ãŒéã§å€ãæž¡ããŸãã
codesandbox.io/s/ppxnl191zx
ïŒãã®äŸã«ã€ããŠã¯ã ãã®ã¬ã€ãã§è©³ãã説æããŸã ãïŒ
ã€ã³ã¿ãŒã»ãã¿ãŒéã§ããŒã¿ã転éã§ãããããã¢ãã¡ãŒã·ã§ã³ã®å®è£ ãããŒã¿ã®ãµãã¹ã¯ã©ã€ãããã©ãŒã ã®ç®¡çããã®ä»ã®ã¹ããŒããã«ãªæœè±¡åã®æäœã«éåžžã«äŸ¿å©ã§ãã ã€ã³ã¿ãŒã»ãã¿ãŒã®å Žåãã¬ã³ããªã³ã°ããããã£ãé«æ¬¡ã³ã³ããŒãã³ããšã¯ç°ãªããã¬ã³ããŒããªãŒã«ãåœã®éå±€ãã¯ãããŸãã ã ãããã¯ãã³ã³ããŒãã³ãã«ã¢ã¿ããããããã¡ã¢ãªã»ã«ãã®2次å ãªã¹ãã«äŒŒãŠããŸãã äœåãªã¬ãã«ã¯ãããŸããã
ã¯ã©ã¹ã¯ã©ãã§ããïŒ
ç§ãã¡ã®æèŠã§ã¯ãç§ãã¡èªèº«ã®ã€ã³ã¿ãŒã»ãã¿ãŒã¯ããªãã¡ãŒå šäœã®äžã§æãèå³æ·±ã詳现ã§ãã ãã ããç¬èªã®ã€ã³ã¿ãŒã»ãã¿ãŒãæ©èœããããã«ã¯ãReactã¯é¢æ°ã®ã¬ãã«ã§ç¶æ ãšå¯äœçšã宣èšããæ©èœãæäŸããå¿ èŠããããŸãã ããã«ããã
useState
ã
useEffect
ãªã©ã®
useState
ã€ã³ã¿ãŒã»ãã¿ãŒãå®è¡ã§ããŸãã 詳现ã«ã€ããŠã¯ã ããã¥ã¡ã³ããåç §ããŠãã ãã ã
ãã®ãããªçµã¿èŸŒã¿ã€ã³ã¿ãŒã»ãã¿ãŒã¯ãç¬èªã®ã€ã³ã¿ãŒã»ãã¿ãŒãäœæãããšãã ãã§ãªãã䟿å©ã§ããããšãããããŸãã ãŸããå¿ èŠãªæ©èœïŒç¶æ ãªã©ïŒãæäŸãããããã³ã³ããŒãã³ãå šäœã決å®ããã®ã«ååã§ãã ããããã€ã³ã¿ãŒã»ãã¿ãŒãå°æ¥Reactã³ã³ããŒãã³ããå®çŸ©ããããã®äž»èŠãªæ段ã«ãªãããšãæãçç±ã§ãã
ãããã段éçã«ã¯ã©ã¹ãå»æ¢ããäºå®ã¯ãããŸããã ç§ãã¡ã¯Facebookã§äœäžãã®ã¯ã©ã¹ã³ã³ããŒãã³ãã䜿çšããŠããŸãããç§ãã¡ã¯ïŒããªããšåãããã«ïŒçµ¶å¯Ÿã«æžãæããããããŸããã ããããReactã³ãã¥ããã£ãŒãã€ã³ã¿ãŒã»ãã¿ãŒã®äœ¿çšãéå§ããå Žåãã³ã³ããŒãã³ããäœæãã2ã€ã®æšå¥šãããæ¹æ³ãä¿æããããšã¯äžé©åã«ãªããŸãã ã€ã³ã¿ãŒã»ãã¿ãŒã¯ãã¯ã©ã¹ã䜿çšããããã¹ãŠã®å®çšçãªã±ãŒã¹ãã«ããŒããŸãããã³ãŒãã®æœåºããã¹ããããã³åå©çšã®éã®æè»æ§ãé«ããŸãã ããããã€ã³ã¿ãŒã»ãã¿ãŒãReactã®å°æ¥ã«ã€ããŠã®ã¢ã€ãã¢ãšçµã³ä»ããçç±ã§ãã
ã€ã³ã¿ãŒã»ãã¿ãŒãéæ³ã®å Žåã¯ã©ããªããŸããïŒ
ããããã€ã³ã¿ãŒã»ãã¿ãŒã®ã«ãŒã«ã¯ããªããå°æãããã§ãããã
ããé«ãã¬ãã«ã§ã€ã³ã¿ãŒã»ãã¿ãŒãåŒã³åºãããšã¯äžè¬çã§ã¯ãããŸããããå¯èœã§ããã°ãèªåã§æ¡ä»¶å ã®æ¡ä»¶ãå€å¥ããããªãã§ããã ã ããšãã°ãæ宀ã§ã¯æ¡ä»¶ã«ææãããæ¡ä»¶ã決å®ããããšã¯ã§ããŸããããŸããReactãŠãŒã¶ãŒãšã®4幎éã®ã³ãã¥ãã±ãŒã·ã§ã³ã«ã€ããŠãããã«é¢ããèŠæ ã¯èããŠããŸããã
ãã®ãããªèšèšã¯ãéå°ãªæ§æãã€ãºãå°å ¥ãããèœãšãç©Žãäœæãããããããšãªããç¬èªã®ã€ã³ã¿ãŒã»ãã¿ãŒãå°å ¥ããããã«éèŠã§ãã ç§ãã¡ã¯ç¿æ £ãããããé£ããããšãç解ããŠããŸããããããæäŸããæ©äŒãèãããšããã®åŠ¥åã¯èš±å®¹ã§ãããšä¿¡ããŠããŸãã åæããªãå Žåã¯ãèªåã§å®éšããŠããã®ã¢ãããŒãã奜ããªæ¹æ³ãè©ŠããŠã¿ãããšããå§ãããŸãã
æ°ããã«ãŒã«ãããã°ã©ããŒãæ··ä¹±ããããã©ããã確èªããããã«ãç§ãã¡ã¯ä»æãçç£ããã¯ã䜿çšããŠããŸãã ç·Žç¿ã«ããã°ã人ã¯æ°æéã§ã€ã³ã¿ãŒã»ãã¿ãŒãç¿åŸããŸãã ç§ã¯äžèŠãããã®ã«ãŒã«ã¯ç°ç«¯ã§ããããã«æããŸãããããã®æèŠã¯ããã«éãå»ããŸããã ããããReactã«åããŠäŒã£ããšãã®å°è±¡ã§ããã ïŒReactã奜ãã§ã¯ãããŸããã§ãããïŒãããŠãç§ã¯2床ç®ã ãã奜ãã§ãããïŒ
泚æïŒã€ã³ã¿ãŒã»ãã¿ãŒã®å®è£ ã¬ãã«ã§ãéæ³ã¯ãããŸããã Jamieã«ãããš ã圌女ã¯æ¬¡ã®ããã«ãªããŸãã
gist.github.com/gaearon/62866046e396f4de9b4827eae861ff19
ã€ã³ã¿ãŒã»ãã¿ãŒã®å±éãªã¹ããç¶æããã€ã³ã¿ãŒã»ãã¿ãŒã䜿çšãããã³ã«ãªã¹ãå ã®æ¬¡ã®ã³ã³ããŒãã³ãã«ç§»åããŸãã ã€ã³ã¿ãŒã»ãã¿ãŒã®ã«ãŒã«ã®ãããã§ããããã®é åºã¯ã©ã®ã¬ã³ããªã³ã°ãšã³ãžã³ã§ãåãã§ãããããåŒã³åºãããšã«ã³ã³ããŒãã³ãã«æ£ããç¶æ ãæäŸã§ããŸãã
ïŒ Rudy Yardleyã®ãã®èšäºã§ã¯ããã¹ãŠãåçã§çŸãã説æãããŠããŸãïŒïŒ
ãããããReactãã€ã³ã¿ãŒã»ãã¿ãŒã®ç¶æ ãã©ãã«ä¿åããã®ãçåã«æã£ãŠãããããããŸããã ã¯ã©ã¹ã®ç¶æ ã¯ã©ãã«ãããŸããã Reactã«ã¯ãã³ã³ããŒãã³ãã®å®çŸ©æ¹æ³ã«é¢ä¿ãªããåç¶æ ã®æçµçãªçå®ãå«ãå éšæŽæ°ãã¥ãŒããããŸãã
ã€ã³ã¿ãŒã»ãã¿ãŒã¯ãæè¿ã®JavaScriptã©ã€ãã©ãªãŒã§éåžžã«äžè¬çãªãããã·ãŒããã³ã²ãã¿ãŒããç¬ç«ããŠããŸãã ãããã£ãŠãã€ã³ã¿ãŒã»ãã¿ãŒã®ããžãã¯ã¯ããã®ãããªåé¡ã解決ããä»ã®äžè¬çãªã¢ãããŒããããå°ãªããšèšããŸãã
array.push
ãš
array.pop
ã®å Žåã«
array.pop
ïŒãã®å ŽåãåŒã³åºãã®é åºãéèŠã§ãïŒïŒ
ã€ã³ã¿ãŒã»ãã¿ãŒã®èšèšã¯ãReactã«é¢é£ä»ããããŠããŸããã å®éãææ¡ã®å ¬éããæ°æ¥åŸãããŸããŸãªäººã ããVueãWebã³ã³ããŒãã³ããããã«ã¯éåžžã®JavaScripté¢æ°ã«å¯ŸããŠãåãã€ã³ã¿ãŒã»ãã¿ãŒAPIã®å®éšçãªå®è£ ãèŠããŠãããŸããã
æåŸã«ãé¢æ°åããã°ã©ãã³ã°ã«å€¢äžã«ãªã£ãŠããŠãReactãå®è£ ã®è©³çŽ°ãšããŠå¯å€ç¶æ ã«äŸåãå§ãããšäžå¿«ã«ãªããŸãã ãã ããã€ã³ã¿ãŒã»ãã¿ãŒåŠçãçŽç²ãªåœ¢åŒã§å®è£ ãã代æ°çå¹æïŒJavaScriptã§ãµããŒããããŠããå ŽåïŒã«éå®ã§ããããšã¯å®å¿ã§ããŸãã åœç¶ã®ããšãªãããã·ã¹ãã å ã¬ãã«ã§ã¯ãReactã¯åžžã«å¯å€ç¶æ ã«äŸåããŠããŸãããããã¯ãŸãã«é¿ãããããšã§ãã
ã©ã¡ãã®èŠç¹ãããªãã«è¿ããïŒå®çšçãŸãã¯ç¬æçïŒã«é¢ä¿ãªãããããã®ãªãã·ã§ã³ã®å°ãªããšã1ã€ãããªãã«ãšã£ãŠçã«ããªã£ãŠããããšãé¡ã£ãŠããŸãã æãéèŠãªããšãšããŠãç§ã®æèŠã§ã¯ãã€ã³ã¿ãŒã»ãã¿ãŒã¯äœæ¥ãç°¡çŽ åãããŠãŒã¶ãŒã«ãšã£ãŠäœæ¥ããã䟿å©ã«ãªããŸãã ãããã€ã³ã¿ãŒã»ãã¿ãŒãç§ã«ãã®ãããªè³briãéãããšã§ãã