1. JavaScriptãã¬ãŒã ã¯ãŒã¯ãšã¯
JavaScriptãã¬ãŒã ã¯ãŒã¯ãšã¯ããŠã§ããµã€ããã¢ãã€ã«ã¢ããªã®éçºã容æã«ããããŒã«ã®ããšãæããŸããããã¯ã¹ã¯ãªããã®éãŸãã§ãããç¹å®ã®æ©èœãè¿œå ãŸãã¯æ¹åããããã«äœ¿çšãããŸãã
ãããã®ãã¬ãŒã ã¯ãŒã¯ã¯ãåã«äœæ¥ãè¿ éã«é²ããã ãã§ã¯ãªããéçºãããžã§ã¯ããæŽçããå ±æããããããããšããæäŒãããŸãã
JavaScriptãã¬ãŒã ã¯ãŒã¯ã¯ãå€ãã®å Žåãäžé£ã®ã©ã€ãã©ãªãšäžç·ã«æäŸãããç¹å®ã®æ©èœãæäŸããŸããããã«ãããéçºè ã¯ã³ãŒãã®æ§æãããç°¡åã«ããããŠå¹ççã«è¡ãããšãã§ããŸãã
1.1 JavaScriptãã¬ãŒã ã¯ãŒã¯ã®å®çŸ©
JavaScriptãã¬ãŒã ã¯ãŒã¯ãšã¯ãéçºè ãã³ãŒããå®è¡ããããããããã®ããã°ã©ã ã®ãã³ãã¬ãŒãã§ããäŸãã°ããã©ãŠã¶ã®äºææ§ã®åé¡ã解決ããããããŒã¿ãã€ã³ãã£ã³ã°ã®ãããªè€éãªåé¡ã解決ããŸãã
ããã«ãããéçºè ã¯ã»ãšãã©ã®æéããŠããŒã¯ã§è€éãªåé¡ã®è§£æ±ºã«è²»ããããšãã§ããå ±éã®åé¡ã«é¢ããã³ãŒãã£ã³ã°æéãå€§å¹ ã«ç¯çŽããŸãã
JavaScriptãã¬ãŒã ã¯ãŒã¯ã®äž»ãªæ©èœã¯ãã³ãŒãã®åå©çšãã³ãŒãã®ç¶æããããŠã¢ããªã±ãŒã·ã§ã³ã®éçºå¹çã®åäžã§ãã
1.2 ãã¬ãŒã ã¯ãŒã¯ã®éèŠæ§
ãã¬ãŒã ã¯ãŒã¯ã¯ãã¢ããªã±ãŒã·ã§ã³éçºã®éã«ãã³ãŒãã®å質ãä¿ã€ããã®éåžžã«éèŠãªåœ¹å²ãæãããŸãã
ãã¬ãŒã ã¯ãŒã¯ã䜿çšãããšãã³ãŒãã®åå©çšã容æã«ãªããã¢ããªã±ãŒã·ã§ã³ã®å šäœçãªå質ãåäžãããããšãå¯èœã«ãªããŸããããã«ãäžè²«ããã³ãŒãã£ã³ã°èŠçŽã䜿çšããããšã§ããããžã§ã¯ãã®æŽåæ§ãä¿ã€ããšãã§ããŸãã
ãã¬ãŒã ã¯ãŒã¯ã䜿ããšããããžã§ã¯ãã®çç£æ§ãšå¹çãåäžããŸããããã¯ãäžéšã®ã¿ã¹ã¯ãèªååãããéçºè ãããã«ã³ãŒããæžãå§ããããšãã§ããããã§ãã
1.3 ãã¬ãŒã ã¯ãŒã¯ã®å©ç¹ãšæ¬ ç¹
JavaScriptãã¬ãŒã ã¯ãŒã¯ã®æ倧ã®å©ç¹ã¯ãéçºé床ãšã³ãŒãã®å質ã®åäžã§ãããã¬ãŒã ã¯ãŒã¯ã¯é«åºŠã«æé©åãããŠãããå¹ççãªã³ãŒãã£ã³ã°ãå¯èœã«ããŸãã
ãããããããã¯åŠç¿æ²ç·ãéºãããããããŸãããæ°ãããã¬ãŒã ã¯ãŒã¯ãç解ããé©çšããã«ã¯æéãšçµéšãå¿ èŠã§ããç¹ã«åå¿è ã«ãšã£ãŠã¯ããªãŒããŒããããšãªãå¯èœæ§ããããŸãã
ãŸãããã¬ãŒã ã¯ãŒã¯ã¯äžè¬çã«ãç¹å®ã®ã±ãŒã¹ãšåé¡ã®è§£æ±ºã«ç¹åããŠããŸãããããã£ãŠããããã¯ç¹å®ã®ãããžã§ã¯ãã«ã®ã¿é©å¿ããå¯èœæ§ããããäžéšã®éçºè ã«ãšã£ãŠã¯äžååãªéžæè¢ãšãªãå¯èœæ§ããããŸãã
1.4 ãã¬ãŒã ã¯ãŒã¯ã®äœ¿çšæã®æ³šæç¹
ãã¬ãŒã ã¯ãŒã¯ã䜿çšããéã«ã¯ããã®ç¹æ§ãšå¶çŽãç解ãããã®äœ¿çšããããžã§ã¯ãã®èŠä»¶ã«é©ããŠãããã©ããã確èªããããšãéåžžã«éèŠã§ãã
ãŸãããã¬ãŒã ã¯ãŒã¯ã®æŽæ°ãšç¶æãå¿ èŠãªå Žåãããã«åŸããã©ããã決å®ããªããã°ãªããŸããããã¬ãŒã ã¯ãŒã¯ãé »ç¹ã«æŽæ°ãããå Žåãã¢ããªã±ãŒã·ã§ã³ãå€ãããŒãžã§ã³ã«äŸåããªãããã«ããããã«ãããã®æŽæ°ãè¿œããããå¿ èŠããããŸãã
çµå±ã®ãšãããé©åãªãã¬ãŒã ã¯ãŒã¯ã®éžæã¯ããããžã§ã¯ãã®æåãšçç£æ§ã«å€§ãã圱é¿ããŸãããã®ããããã¬ãŒã ã¯ãŒã¯ãéžã¶éã«ã¯æ éã«æ€èšããããšãæ±ããããŸãã
2. äž»èŠãªJavaScriptãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠ
ãã¬ãŒã ã¯ãŒã¯ã¯ããã°ã©ãã³ã°ã«ãããåŠçã®æµããæ§é ãååçšåºŠæ±ºããŠãããä»çµã¿ã§ãå¹ççäžã€å®å šã«éçºãé²ããããšãã§ããŸããJavaScriptã®äžçã«ãå€ãã®åŒ·åãªãã¬ãŒã ã¯ãŒã¯ãååšããŸããããã§ã¯ãäž»èŠãªJavaScriptãã¬ãŒã ã¯ãŒã¯ãšããŠãAngularãReactãVue.jsããããŠEmber.jsã«çŠç¹ãåœãŠãŠè©³ããã玹ä»ããŸãã
2.1 Angularãšã¯
Angularã¯GoogleãéçºããJavaScriptãã¬ãŒã ã¯ãŒã¯ã§ããã€ã³ã¿ã©ã¯ãã£ããªãŠã§ãã¢ããªã±ãŒã·ã§ã³éçºã容æã«ããããã®åŒ·åãªããŒã«ããããæäŸããŸããç¹ã«Single Page ApplicationïŒSPAïŒã®éçºã«ã¯åãçºæ®ããŸãã
Angularã¯TypeScriptãšãã匷åãªã¿ã€ãã·ã¹ãã ãæã€JavaScriptã®ã¹ãŒããŒã»ããã§æžãããŠããã倧èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³éçºã«å¯Ÿå¿ããèšèšããããŠããŸãããŸããããŒã¿ãã€ã³ãã£ã³ã°ãäŸåæ§æ³šå ¥ãšãã£ãæ©èœãå«ãŸããŠãããããã³ãŒãã®å¯èªæ§ãä¿å®æ§ãé«ãŸããŸãã
ãã ããAngularã®åŠç¿æ²ç·ã¯ãªã ãããšã¯èšãããèŠããããšãå€ãããæåã¯ããŒãã«ãé«ããšæãããããããŸããããããããã®åŽåãæãããšã§åŸãããåå©çšæ§ããã¹ãã®å®¹æãã¯å€§ããã§ãã
2.2 Reactãšã¯
Reactã¯FacebookãéçºããJavaScriptã©ã€ãã©ãªã§ã”User Interface”ïŒUIïŒãå¹ççã«æ§ç¯ããããšãç®çã§ããReactã¯Virtual DOMãšããä»®æ³ã®DOMæ§é ãçšããããšã§ãããã©ãŒãã³ã¹ã®åäžãšéçºã®äŸ¿å©ããäž¡ç«ããŠããŸãã
Reactã®æ倧ã®ç¹åŸŽã¯ãã³ã³ããŒãã³ãåã«éãã眮ããã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ãå¯èœãªããšã§ããããã«ãããæ©èœãããžãã¯ãç¬ç«ããã¢ãžã¥ãŒã«ãšããŠç®¡çããããšãã§ããåå©çšæ§ãšä¿å®æ§ãåäžããŸãã
ãŸããReactã¯ã©ã€ãã©ãªã§ãããããä»ã®ã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãšçµã¿åãããŠèªç±ã«äœ¿çšããããšãå¯èœã§ãããã®ãããæ°ãã«åŠç¿ãããã®ãå°ãªããå°å ¥ã®ãããããé åã®äžã€ãšèšããŸãã
2.3 Vue.jsãšã¯
Vue.jsã¯ãšãã³ã»ãŠãŒã«ãã£ãŠéçºãããJavaScriptãã¬ãŒã ã¯ãŒã¯ã§ããã®èšèšã®çŸãããšäœ¿ããããããå€ãã®éçºè ã«æçšãããŠããŸããReactãšåæ§ã«ãVue.jsããŸãVirtual DOMãæ¡çšããŠããŸãã
Vue.jsã®ç¹åŸŽã¯ã·ã³ãã«ãã«ãããŸããAPIã®èšèšãçŽæçã§ãHTMLãCSSãJavaScriptã®åºæ¬çãªç¥èã ãã§åãçµãããšãã§ããŸãããŸãããã¡ã€ã«ã®èŠæš¡ã倧ãããªã£ãŠã管çãããããåå¿è ã§ãæ±ãããããã¬ãŒã ã¯ãŒã¯ãšãããŠããŸãã
匷åãªå ¬åŒã©ã€ãã©ãªãšã³ãã¥ããã£ã®ãµããŒãã«ãããåäžããŒãžã¢ããªã±ãŒã·ã§ã³ãã倧èŠæš¡ã¢ããªã±ãŒã·ã§ã³ãŸã§å¹ åºãçšéã§äœ¿çšããããšãã§ããŸãã
2.4 Ember.jsãšã¯
Ember.jsã¯ã”Convention over configuration”ïŒèšå®ããèŠçŽïŒãã¢ãããŒã«èšèšãããJavaScriptãã¬ãŒã ã¯ãŒã¯ã§ããããã«ããéçºè ã¯èšå®ã«è¿·ãããšãªããå³åº§ã«éçºãå§ããããšãã§ããŸãã
Ember.jsã¯ãã«ã¹ã¿ãã¯ãã¬ãŒã ã¯ãŒã¯ãšããŠç¥ãããŠããã倧èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³éçºã«ã察å¿ã§ããŸãããŸããç©æ¥µçãªããŒãžã§ã³ç®¡çãšäºææ§ã®ä¿æã«ãããé·æçãªãããžã§ã¯ãã«ãåããŠããŸãã
ãã®åé¢ãèŠæš¡ãå°ããªãããžã§ã¯ãããããã¿ã€ãå¶äœã«ã¯åããªããšãããŸãããããã倧èŠæš¡ãªãããžã§ã¯ãã§ã¯ãã®åãçºæ®ããå€ãã®äŒæ¥ã§æ¡çšãããŠããŸãã
3. JavaScriptãã¬ãŒã ã¯ãŒã¯ã®éžææ¹æ³
JavaScriptã®ãã¬ãŒã ã¯ãŒã¯ãéžã¶ããšã¯ãããžã§ã¯ãã®æåãå·Šå³ããŸããåãã¬ãŒã ã¯ãŒã¯ã¯ç¬èªã®æ©èœãšç¹æ§ãæã£ãŠãããåã ã®ãããžã§ã¯ãã®èŠä»¶ã«æé©ãªãã¬ãŒã ã¯ãŒã¯ãéžã¶äºãå¿ èŠäžå¯æ¬ ã§ãããã®ãããã©ã®ãã¬ãŒã ã¯ãŒã¯ãæé©ãªã®ããèŠæ¥µããããã®åºæºãèããäºãéèŠã§ãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãJavaScriptãã¬ãŒã ã¯ãŒã¯ãéžæããéã«èæ ®ãã¹ãäž»èŠãªãã€ã³ããæ¢ã£ãŠãããŸããããã«ã¯ããããžã§ã¯ãã®èŠæš¡ãã³ãã¥ããã£ã®æŽ»æ§åºŠããããŠããã¥ã¡ã³ããŒã·ã§ã³ã®å å®åºŠãå«ãŸããŸãã
ãããã®èŠ³ç¹ãããã¬ãŒã ã¯ãŒã¯ãè©äŸ¡ããããšã§ãæçµçã«ã¯ããªãã®èŠæ±ãæºããæé©ãªãã¬ãŒã ã¯ãŒã¯ãèŠã€ããããšãã§ããã§ãããã
3.1 éžæããéã®ãã€ã³ã
ãã¬ãŒã ã¯ãŒã¯ãéžã¶éã®äžã€ç®ã®ãã€ã³ãã¯ããã®ãã¬ãŒã ã¯ãŒã¯ãããªãã®ãããžã§ã¯ãã«å¯ŸããŠã©ãã ãä»å 䟡å€ãæäŸã§ãããã§ããããã¯è»œéæ§ãã¹ã±ãŒã©ããªãã£ãªã©ã®æ©èœæ§ã ãã§ãªããã³ãŒãã®çç£æ§ãç¶æ管çã®å®¹æãã«ãé¢é£ããŠããŸãã
äºã€ç®ã®ãã€ã³ãã¯ããªããããªãã®ããŒã ããã®ãã¬ãŒã ã¯ãŒã¯ãç解ã掻çšããèœåã§ããåŠç¿æ²ç·ãæ¥ãªãã¬ãŒã ã¯ãŒã¯ãéžã¶ãšãéçºã®é²è¡ãé ããªãå¯èœæ§ããããŸãã
äžã€ç®ã®ãã€ã³ãã¯ããã¬ãŒã ã¯ãŒã¯ã®ã³ãã¥ããã£ã®æŽ»çºãã§ããç©æ¥µçãªã³ãã¥ããã£ãååšãããã¬ãŒã ã¯ãŒã¯ã¯ãåé¡è§£æ±ºã®ãµããŒããçŽ æ©ããã°ä¿®æ£ãæ°æ©èœã®è¿œå ãæåŸ ã§ããŸãã
3.2 ãããžã§ã¯ãã®èŠæš¡ã«ããéžæ
ãããžã§ã¯ãã®èŠæš¡ã¯ãã¬ãŒã ã¯ãŒã¯ã®éžæã«å€§ããªåœ±é¿ãäžããŸããå°èŠæš¡ãªãããžã§ã¯ãã§ã¯ãã·ã³ãã«ã§è»œéãªãã¬ãŒã ã¯ãŒã¯ããã¹ããªéžæãšãªããããããŸãããäžæ¹ã倧èŠæš¡ãªãããžã§ã¯ãã§ã¯ãé«åºŠãªæ©èœãšæ¡åŒµæ§ãåãããã¬ãŒã ã¯ãŒã¯ãå¿ èŠãšãªãå ŽåããããŸãã
ãŸãããããžã§ã¯ãã®æéãæ¡çž®ã®äºæ³ããã¬ãŒã ã¯ãŒã¯éžæã«åœ±é¿ããŸããçæéã§ã®å®æãç®æããããžã§ã¯ãã§ã¯ãè¿ éãªéçºãå¯èœãªãã¬ãŒã ã¯ãŒã¯ãé©ããŠããŸããäžæ¹ãé·æã«ããããããžã§ã¯ããæé·ãèŠèŸŒãŸãããããžã§ã¯ãã§ã¯ãã¹ã±ãŒã©ããªãã£ãç¶æ管çã®å®¹æããåãããã¬ãŒã ã¯ãŒã¯ãæ±ããããŸãã
æåŸã«ãéçºããŒã ã®ã¹ãã«ã»ãããšçµéšãéèŠãªèŠçŽ ã§ããããŒã ããã§ã«çç·ŽããŠãããã¬ãŒã ã¯ãŒã¯ãéžã¶ãšãå¹ççã«éçºãé²ããããšãã§ããŸãã
3.3 ã³ãã¥ããã£ã®æŽ»çºããèŠããã€ã³ã
匷åãªJavaScriptãã¬ãŒã ã¯ãŒã¯ã®èåŸã«ã¯ãã»ãšãã©ã®å Žåã掻çºãªã³ãã¥ããã£ãååšããŸããã³ãã¥ããã£ã®æŽ»çºããè©äŸ¡ããäžã€ã®æ¹æ³ã¯ãGitHubãStack Overflowãªã©ã®ãµã€ãäžã§ã®æŽ»å床ãèŠãããšã§ãã
ãŸããã³ãã¥ããã£ã§é »ç¹ã«æ°ããããŒãžã§ã³ã®ãªãªãŒã¹ãè¡ãããŠããããããªãŒãã³ãªè°è«ã掻çºã«è¡ãããŠããããéèŠãªãã€ã³ãã§ãããããã®æŽ»åã¯ããã¬ãŒã ã¯ãŒã¯ãé²åãç¶ããŠããããšã瀺ããŠããŸãã
æåŸã«ã倧ããªã€ãã³ããã«ã³ãã¡ã¬ã³ã¹ãå®æçã«éãããŠãããããã³ãã¥ããã£ã®æŽ»æ§åºŠã瀺ããŸãããããã®ã€ãã³ãã¯ãæ°ããªã¢ã€ãã¢ãçµéšãææ°ã®ãã¹ããã©ã¯ãã£ã¹ãå ±æããè¯ãæ©äŒã§ãã
3.4 ããã¥ã¡ã³ããŒã·ã§ã³ã®å å®åºŠã調ã¹ãæ¹æ³
匷åãªããã¥ã¡ã³ããŒã·ã§ã³ã¯ããã¬ãŒã ã¯ãŒã¯ãç解ããå¹æçã«å©çšããããã«ã¯å¿ é ã§ããå ¬åŒã®ããã¥ã¡ã³ããŒã·ã§ã³ãå®å šãã€ææ°ã§ããããšã¯éåžžã«éèŠã§ãã
ãŸãããã¥ãŒããªã¢ã«ããµã³ãã«ã³ãŒããè±å¯ã«ååšããããéèŠãªãã€ã³ãã§ãããããã¯ããã¬ãŒã ã¯ãŒã¯ã®å ·äœçãªäœ¿çšæ¹æ³ãåŠã¶ããã®è²ŽéãªãªãœãŒã¹ã§ãã
æåŸã«ãåé¡ãçºçãããšãã«é©åãªãµããŒããåãããããããããã¥ã¡ã³ããŒã·ã§ã³ã®å å®åºŠã芳å¯ããããã®éèŠãªææšãšãªããŸããããã«ã¯ãã³ãã¥ããã£ã§ã®ãµããŒããå°é家ã«ããå©ããå«ãŸããŸãã
4. JavaScriptãã¬ãŒã ã¯ãŒã¯ã®åŠç¿æ¹æ³
JavaScriptãã¬ãŒã ã¯ãŒã¯ã®ç¿åŸã¯ãèªåã«ãšã£ãŠæé©ãªåŠç¿æ¹æ³ãèŠã€ããããšãéèŠã§ãããã®çºã«ã¯ãåŠç¿ã®ã¹ããããšãã¬ãŒã ã¯ãŒã¯ã®ç¹æ§ãç解ããæ¹æ³ããµã³ãã«ã³ãŒãã®è§£èªãšåŠç¿ããããŠãã©ã€ã¢ã«ã¢ã³ããšã©ãŒã®éèŠæ§ãç解ããªããŠã¯ãªããŸããã以äžã«ãããããã®èŠçŽ ã«ã€ããŠè©³ãã説æããŸãã
4.1 åŠç¿ã®ã¹ããã
æåã«åºæ¬çãªJavaScriptã®ææ³ãç解ããããšããå§ããŸãããŸããæãåºæ¬çãªãã¬ãŒã ã¯ãŒã¯ã䜿ã£ãŠã¿ãããšãè¯ãã§ãããããã®åŸç°¡åãªã¢ããªã±ãŒã·ã§ã³ãäœæãããã¬ãŒã ã¯ãŒã¯ãå®éã«äœ¿çšããããšã§ãããå ·äœçãªç解ãæ·±ããããšãã§ããŸãã
æåããŠã¢ããªã±ãŒã·ã§ã³ãäœæããåŸã¯ãããé«åºŠãªæ©èœããã¬ãŒã ã¯ãŒã¯ã®é²åã«å¯Ÿå¿ããããã®ç¥èãä»å ¥ããããšã«ç§»ããŸããJavaScriptã®ãã¬ãŒã ã¯ãŒã¯ã¯éãããŒã¹ã§é²åããŠãããã®ã®äžã€ã§ãããã¢ããããŒããè¿œããããããšã¯éåžžã«éèŠã§ãã
æåŸã«ãããªããç¿åŸããããã¬ãŒã ã¯ãŒã¯ã«é¢ããè³æºãèŠã€ãããããã«é¢ããç¥èãåžåããŸãããããããã®è³æºã¯ãå°éçãªæžç±ããªã³ã©ã€ã³ã³ãŒã¹ããŸãã¯å ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ãªã©ããããŸãã
4.2 ãã¬ãŒã ã¯ãŒã¯ã®ç¹æ§ãç解ããæ¹æ³
ãã¬ãŒã ã¯ãŒã¯ãåŠã¶äžã§äžå¿ãšãªãã®ãããã®ãã¬ãŒã ã¯ãŒã¯ç¹æã®ç¹æ§ãšå°è±¡ãç解ããããšã§ããããã«ã¯ããã¬ãŒã ã¯ãŒã¯ã®æ§é ãå©ç¹ãå¶çŽãã³ãã¥ããã£ã®èŠæš¡ãªã©ãå«ãŸããŸãã
ããã«ããã¬ãŒã ã¯ãŒã¯ã®ç¹æ§ãç解ããããã«ã¯ããããä»ã®ãã¬ãŒã ã¯ãŒã¯ãšã©ã®ããã«å·®å¥åãããããç解ããããšãäžå¯æ¬ ã§ããããã«ãããã©ã®ãã¬ãŒã ã¯ãŒã¯ãã©ã®ã·ãã¥ãšãŒã·ã§ã³ã§äžçªäœ¿ãããããã®ãªã®ãç解ããããšãå¯èœã«ãªããŸãã
ç¹æ§ãç解ããããã®æ å ±æºãšããŠã¯ãå ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ãæžç±ããšãã¹ããŒãã®èšäºããã¥ãŒããªã¢ã«ãªã©ããããŸãããããã掻çšããŠãã¬ãŒã ã¯ãŒã¯ã®ç¹æ§ãšããããæäŸãããœãªã¥ãŒã·ã§ã³ãç解ããŸãããã
4.3 ãµã³ãã«ã³ãŒãã®è§£èªãšåŠç¿
åŠç¿ã®éçšã§äžçªæå¹ãªæ¹æ³ã®äžã€ããµã³ãã«ã³ãŒããèªãããšã§ããããã¯ãå®éã«ãã¬ãŒã ã¯ãŒã¯ã®åäœãäœéšãããã®ã³ãŒãã®æžãæ¹ãåŠã¶æéã®æ¹æ³ã®äžã€ã§ãã
ãœãŒã¹ã³ãŒããèªãããšã§ãããªãã¯ãã®ãã¬ãŒã ã¯ãŒã¯ãã©ã®ããã«åäœãããã ãã§ãªãããã®ãã¬ãŒã ã¯ãŒã¯ã®åžå Žå šäœã«å¯Ÿããããžã§ã³ãç解ããããšãã§ããŸãããã®èªè§£ã¹ãã«ã¯ãåŸã®éçºã§äžå¯æ¬ ãšãªããŸãã
ãŸããå®éã®æ¥åã«ãããŠã¯ããããŸã§ã«æžãããŠããªãæ°ããªã³ãŒããæžãããããæ¢åã®ã³ãŒããèªãæéã®æ¹ãå§åçã«é·ãã®ãçŸå®ã§ãããã®ãããã³ãŒããªãŒãã£ã³ã°èœåã®åäžã¯æ Œæ®µã«ä»äºã®å¹çãäžããããšã«ã€ãªãããŸãã
4.4 ãã©ã€ã¢ã«ã¢ã³ããšã©ãŒã®éèŠæ§
JavaScriptãã¬ãŒã ã¯ãŒã¯ã®åŠç¿ã«ãããŠæãéèŠãªèŠçŽ ã®äžã€ã«ããã©ã€ã¢ã«ã¢ã³ããšã©ãŒããããŸããäžçªå¹æçãªåŠç¿æ¹æ³ã¯ãå®éã«æãåãããŠã³ãŒããæžãããšã§ãã
ããã°ã©ãã³ã°ã¯ãå®å šãªçè«ããåŠãã§å°ããã€é²ãããã®ã§ã¯ãªããèªåã§å®éšãéããªããåŠã¶ãã®ã§ãããã®ããã«ã¯ãå žåçãªåé¡ã«å¯ŸåŠããããã®æè¡çãªè§£æ±ºçãäœã§ããããç解ããªãããããããèªåã®ã³ãŒãã«é©çšããç¿æ £ãé€ãããšãå¿ èŠã§ãã
ãŸãšãããšãJavaScriptãã¬ãŒã ã¯ãŒã¯ã®åŠç¿æ¹æ³ã¯ãé©åãªåŠç¿ã¹ãããã«åŸãããã¬ãŒã ã¯ãŒã¯ã®ç¹æ§ãç解ãããµã³ãã«ã³ãŒãã®è§£èªãšåŠç¿ãããããšããããŠãã©ã€ã¢ã«ã¢ã³ããšã©ãŒãçµéšããããšãéèŠãšãªããŸãããããã«ãããæåããJavaScriptãã¬ãŒã ã¯ãŒã¯ã®éçºè ã«ãªããã§ãããã
5. JavaScriptãã¬ãŒã ã¯ãŒã¯ã®å®éã®å©çšäºäŸ
JavaScriptãã¬ãŒã ã¯ãŒã¯ã¯ãéçºè ãé©åã«äœ¿çšããããšã«ãããå€ãã®çš®é¡ã®ãããžã§ã¯ãã§åœ¹ç«ã€ããŒã«ãšãªããŸããæ¬ç« ã§ã¯ãå®éã«JavaScriptãã¬ãŒã ã¯ãŒã¯ãã©ã®ããã«äœ¿çšãããŠããã®ããåã€ã®å ·äœçãªäºäŸãéããŠè§£èª¬ããŸãã
ãããã®äºäŸã¯ãJavaScriptãã¬ãŒã ã¯ãŒã¯ã®ã©ã®ãããªæ§èœãšç¹æ§ããçŸä»£ã®éçºã§æ±ããããèŠçŽ ã«æçšã§ããã®ããæ瀺çã«ç€ºããã®ã§ãããã®ãããããªãããã¬ãŒã ã¯ãŒã¯ãéžã³ãé©çšããããšãæ€èšããŠããå Žåãå ·äœçãªäœ¿çšäŸãäžå©ãšãªãã§ãããã
ããã«ãåäºäŸããšã«JavaScriptãã¬ãŒã ã¯ãŒã¯ãããããã¡ãªãããšããã®å©çšå Žé¢ãç解ããã°ãããªãã®ãããžã§ã¯ãã«æé©ãªãã¬ãŒã ã¯ãŒã¯ãéžæã§ããæéãšãªãã§ãããã
5.1 ã³ãŒãã¬ãŒããµã€ãã§ã®å©çšäºäŸ
JavaScriptãã¬ãŒã ã¯ãŒã¯ãçšããŠã³ãŒãã¬ãŒããµã€ããéçºããããšã§ãäžäžäžä»£ã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããšãå¯èœã«ãªããŸãã
Vue.jsãReact.js ãšãã£ããã¬ãŒã ã¯ãŒã¯ã¯ãåçãªã³ã³ãã³ãã®è¡šç€ºãã€ã³ã¿ã©ã¯ãã£ããªèŠçŽ ãåãå ¥ããããšãã§ãã蚪åè ã«ãšã£ãŠèŠæãããããŠäœ¿ãæããµã€ããå®çŸããŸãã
äŸãã°ãã³ãŒãã¬ãŒãã®ãã¥ãŒã¹ã»ã¯ã·ã§ã³ã§ã¯ãææ°ã®æ å ±ããªã¢ã«ã¿ã€ã ã§è¡šç€ºããããšãã§ããŸããã補åã®è©³çŽ°ããŒãžã§ã¯ããŠãŒã¶ãŒãšã®å¯Ÿè©±çãªèŠçŽ ãåãå ¥ããããšãå¯èœã§ãã
5.2 Webã¢ããªã±ãŒã·ã§ã³ã§ã®å©çšäºäŸ
Webã¢ããªã±ãŒã·ã§ã³ã®éçºã«ãããŠãJavaScriptãã¬ãŒã ã¯ãŒã¯ã¯å€§ããªåœ¹å²ãæãããŸãã倧éã®ããŒã¿ãæ±ã£ãããè€éãªããžãã¯ãçµã¿èŸŒãã®ã«æé©ãªãã¬ãŒã ã¯ãŒã¯ã¯ãAngular ã React.js ãšãã£ããã®ããããŸãã
ãããã®ãã¬ãŒã ã¯ãŒã¯ã§ã¯ã³ã³ããŒãã³ãããŒã¹ã®éçºãå¯èœã§ãåå©çšå¯èœãªã¢ãžã¥ãŒã«ãäœæããããšã§ãéçºã®çç£æ§ãšã¡ã³ããã³ã¹æ§ãåäžãããããšãã§ããŸãã
ãŸããNode.js ã¯ãã®åŒ·åãªããã¯ãšã³ãèœåã«ãããã¯ã©ãŠãããŒã¹ã®Webã¢ããªã±ãŒã·ã§ã³æ§ç¯ã«å©çšãããããšãå€ãã§ãã
5.3 SPAïŒã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ïŒã§ã®å©çšäºäŸ
ã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ïŒSPAïŒã®éçºã«ãããŠã¯ãReact.js ã Vue.js ãäž»ã«å©çšãããŸãããããã®ãã¬ãŒã ã¯ãŒã¯ã¯ãããŒãžé·ç§»ã®ã©ã°ãç¡ããããã®åçãªããŒã¿ã®èªã¿èŸŒã¿ãæŽæ°ãå¯èœã«ããäžè²«ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããŸãã
ããã«ããããŠãŒã¶ãŒã¯ããŒãžç§»åããªããŒããããããšãªããå¿ èŠãªæ å ±ãåŸãããšãã§ããŸããããã¯ç¹ã«ããŒã¿é§ååã®ã¢ããªã±ãŒã·ã§ã³ããªã¢ã«ã¿ã€ã ã¢ããªã±ãŒã·ã§ã³ã«ãããŠéèŠãªèŠçŽ ãšãªããŸãã
ãŸããSPAã§ã®SEOæé©åã¯é£ãããšãããŠããŸãããNext.jsïŒReactïŒã Nuxt.jsïŒVueïŒãšãã£ããã¬ãŒã ã¯ãŒã¯ãçšããããšã§ãåé¡ãå¹ççã«è§£æ±ºããããšãã§ããŸãã
5.4 ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã§ã®å©çšäºäŸ
JavaScriptãã¬ãŒã ã¯ãŒã¯ã¯ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®éçºã«ã䜿çšãããŸããReact Native ã¯ãæ¬æ Œçãªã¢ãã€ã«ã¢ããªãJavaScriptã§æ§ç¯ããããã®ãã¬ãŒã ã¯ãŒã¯ã§ãiOSãšAndroidã®äž¡æ¹ã®ãã©ãããã©ãŒã ã«å¯Ÿå¿ããŠããŸãã
React Native ã䜿çšãããšãã³ã³ããŒãã³ãããŒã¹ã®éçºãããããªããŒãã£ã³ã°ãšãã£ãReactã®ç¹æ§ãçãããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãéçºããããšãå¯èœãšãªããŸãã
ãŸããVue NativeããŸããVue.jsã«èŠªããã§ããéçºè ã«ãšã£ãŠã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³éçºã®éžæè¢ãšãªã£ãŠããŸãããããã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããã°ããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ãšåããããªããã©ãŒãã³ã¹ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããªãããéçºæéãççž®ããããšãã§ããŸãã
6. JavaScriptãã¬ãŒã ã¯ãŒã¯ã®ãã¬ã³ããšæªæ¥
è¿å¹ŽãJavaScriptã®ãã¬ãŒã ã¯ãŒã¯ã¯ããã®æ©èœæ§ãšå¹ççãªéçºç°å¢ã«ãããå€ãã®éçºè ãã泚ç®ãéããŠããŸããããã§ã¯ãJavaScriptã®ãã¬ãŒã ã¯ãŒã¯ã®ãã¬ã³ããæªæ¥ã«ã€ããŠèŠãŠãããŸãããã
ãã®ç« ã§ã¯ãçŸè¡ã®ãã¬ã³ããéçºã®é²åã®æ¹åæ§ãä»åŸã®JavaScriptãã¬ãŒã ã¯ãŒã¯ã®çºå±äºæ³ããããŠéçºè ãšããŠã©ã®ãããªã¹ãã«ã身ã«ã€ããã¹ãããšãã芳ç¹ãã解説ããŸããå ·äœçã«ã¯ãäž»èŠãªJavaScriptãã¬ãŒã ã¯ãŒã¯ã§ããReactãAngularãVue.jsã®çŸç¶ãšæªæ¥ãåãæ±ããŸãã
æè¡ã®ãã¬ã³ãã¯åžžã«å€ããã€ã€ãããŸãã®ã§ãææ°ã®ãã¬ã³ããæãã€ã€ãå°æ¥çãªèŠç¹ãæã€ããšãéèŠã§ãã次ã¯çŸåšã®ãã¬ã³ãã«ã€ããŠèŠãŠãããŸãããã
6.1 çŸåšã®ãã¬ã³ã
çŸåšãJavaScriptãã¬ãŒã ã¯ãŒã¯ã®äžçã§ã¯ãReactãAngularãVue.jsãäž»æµã§ããåãã¬ãŒã ã¯ãŒã¯ã¯ç¹è²ãããããããããç°ãªãåé¡è§£æ±ºã«å¯ŸããŠæé©ãªãã®ãšãªã£ãŠããŸãã
Reactã¯Facebookãéçºãã¡ã³ããã³ã¹ãè¡ã£ãŠããJavaScriptã®ã©ã€ãã©ãªã§ãã³ã³ããŒãã³ãããŒã¹ã®éçºãå¯èœã«ããŸããäžæ¹ãAngularã¯Googleã«ããéçºãããããã³ããšã³ãéçºã®ãã¬ãŒã ã¯ãŒã¯ãšããŠå¹ åºã䜿ãããŠããŸãã
Vue.jsã¯ãReactãAngularãšã¯ç°ãªããå人éçºè ã«ãããããžã§ã¯ããšããŠå§ãŸãããã®æè»æ§ãšäœ¿ãããããè©äŸ¡ãããäžéšã®äŒæ¥ããããžã§ã¯ãã§æ¡çšãããŠããŸãã
6.2 ãã¬ãŒã ã¯ãŒã¯éçºã®é²åã®æ¹åæ§
ãã¬ãŒã ã¯ãŒã¯ã®éçºã®é²åã¯ãããã¹ã ãŒãºã§å¹ççãªããã°ã©ãã³ã°ãç®æããŠããŸããçç£æ§ã®åäžãããã©ãŒãã³ã¹ã®æé©åãä¿å®æ§ã®æ¹åãæ±ããããŠããŸãã
ãŸããããçŽæçãªã³ãŒãã£ã³ã°ãå¯èœã«ããéçºè ãè€éãªããã°ã©ã ãç°¡åã«æ§ç¯ã§ããããã«ãªãããšãããŒãšãªããŸãããã®ããã«ãä»®æ³DOMã®å©çšãã¹ããŒã管çã®æ¹è¯ãªã©ãé²ãã§ããŸãã
ãã¬ãŒã ã¯ãŒã¯ã®é²åã¯ãæè¡çãªãã¬ã³ãã ãã§ãªããéçºè ã³ãã¥ããã£ã®ããŒãºãèŠæã«ãã£ãŠã倧ãã圱é¿ãåããŸããä»åŸãæç¶çãã€ç©æ¥µçãªã³ãã¥ãã±ãŒã·ã§ã³ãšãã£ãŒãããã¯ãéããŠãéçºãé²ããããã§ãããã
6.3 ä»åŸã®JavaScriptãã¬ãŒã ã¯ãŒã¯ã®çºå±äºæ³
JavaScriptãã¬ãŒã ã¯ãŒã¯ã®çºå±äºæ³ãèŠããšã匷åãããããã©ãŒãã³ã¹ãç°¡çŽ åãããAPIãããžã¥ã¢ã«ããã°ã©ãã³ã°ããŒã«ã®æ®åãªã©ãèŠåããããŸãã
ãŸããWebAssemblyã®ãããªæ°æè¡ã®æ¡çšã«ããããã¬ãŒã ã¯ãŒã¯ã¯ä»ãŸã§ä»¥äžã«åŒ·åãªããŒã«ãšãªãããŠã§ãéçºã®å¯èœæ§ãããã«åºããã§ãããã
ãããŠæåŸã«ããã¬ãŒã ã¯ãŒã¯ã®æ®åãšå ±ã«ããã質ã®é«ãæè²ããŒã«ãšããã¥ã¡ã³ããŒã·ã§ã³ãæ±ããããŸããããã¯ãã¬ãŒã ã¯ãŒã¯ã®å©çšè ãå¢ããããšã§ãããå€ãã®äººã ãçŽåŸã®ãã圢ã§ãã¬ãŒã ã¯ãŒã¯ãå©çšã§ããããã«ãªããšããæå³ã§ãã
6.4 éçºè ãšããŠåããã¹ãã¹ãã«ãšã¯
æåŸã«ãä»åŸJavaScriptãã¬ãŒã ã¯ãŒã¯ã®éçºè ãšããŠåããã¹ãã¹ãã«ã«ã€ããŠãŸãšããŸããããäžã€ç®ã¯ãææ°ã®ãã¬ãŒã ã¯ãŒã¯ã®ç¥èãšçµéšã®ç¿åŸã§ãã
äºã€ç®ã¯ããã¬ãŒã ã¯ãŒã¯ãéžæãé©çšããå€æåã§ããããã¯ãããžã§ã¯ãã®èŠä»¶ã«åºã¥ããŠãæé©ãªãã¬ãŒã ã¯ãŒã¯ãéžã¹ãèœåãå«ã¿ãŸãã
æåŸã«ããã®ä»ã®åšèŸºæè¡ã®ç解ãå¿ èŠã§ããç¹ã«éèŠãªã®ã¯ãCSSïŒHTMLãããã¯ãšã³ãæè¡ãããŒã¿ããŒã¹ãªã©ã®ãŠã§ãéçºå šäœã«é¢ããæè¡ã®å¹ åºãç¥èãšç解ã§ãã