
ãžã§ã³ã«ãããšãéå»3幎éã圌ã¯Reactã§åæ¥éçºã«æºãã£ãŠããŸãã 圌ã¯ãã¯ã©ã€ã¢ã³ããä»äºãããŠããäŒç€Ÿã«æ¥ããšãã»ãšãã©ã®å ŽåãReactã䜿çšããŠãããžã§ã¯ããäœæããããšèšããŸãã ãã ãããã°ãããããšãVueã¯åæ§ã®æ³šæã¬ãã«ã䜿çšããããã«ãªããŸãã ãã®èšäºã§ã¯ã2ã€ã®ã©ã€ãã©ãªãŒã®éããããããç解ããããã«ãReactãšVueãåæããŸããïŒ ãã®èšäºã®å 容ã¯ãã¯ã©ã€ã¢ã³ããšã®å ±åäœæ¥ã«åœ¹ç«ã€ãšè¿°ã¹ãŠããŸãã 圌ã¯ãReactã§æ°å¹ŽåããŠããŸããããèªåããã£ãŠããããšãæ°ã«å ¥ã£ãŠããã«ãããããããVueã§äœæ¥ããŠãããšãã«çµéšã圹ã«ç«ããªãäºæããªãç¶æ³ãçºçããå¯èœæ§ããããããå°æ¥ã®æºåãããŸããããšèããŠããŸãã
æåŸããéå§
å¥åŠãªããšã«ãçµè«ãåºããŠãReactãšVueã«é¢ããç§ã®è©±ãå§ããããšæããŸãã ããã2ã€ã®ãã¬ãŒã ã¯ãŒã¯ã¯äŒŒãŠããŸãããããã€ãã®éèŠãªéãããããŸãããç°¡åã«èª¬æããŸãã ãªãããããæ¯èŒããã®ã§ããïŒ 1ã€ã®çç±ã¯ãVueéçºè ã®Evan Yuã«ãšã£ãŠãReactãã€ã³ã¹ãã¬ãŒã·ã§ã³ã®æºã®1ã€ã ã£ãããã§ãã ãããã®ãã¬ãŒã ã¯ãŒã¯ã¯ãAngularãEmberã«é¡äŒŒããŠãããšããããããäºãã«ã¯ããã«é¡äŒŒããŠããŸãã Vueã®ããã¥ã¡ã³ããããä»æ¥è©±ããŠãããã¬ãŒã ã¯ãŒã¯ã®äž¡æ¹ã«æ¬¡ã®æ©èœãããããšãããããŸãã
- ä»®æ³DOMã䜿çšããŸãã
- åå¿æ§ããã³ã³ã³ããŒãã³ãæ§é ã
- äž»ãªã©ã€ãã©ãªã«çŠç¹ãåœãŠãããŠããŸãã ã«ãŒãã£ã³ã°ãã¢ããªã±ãŒã·ã§ã³ã®ã°ããŒãã«ç¶æ
ã®ç®¡çãªã©ã®è¿œå ã¿ã¹ã¯ã¯ãè£å©ããŒã«ã«ãã£ãŠè§£æ±ºãããŸãã
ãããã®ã©ã€ãã©ãªã«åºã¥ããŠæ§ç¯ãããæ¢æã®ãããžã§ã¯ããæ€èšããå ŽåãVueã«åºã¥ããŠæ§ç¯ããããããžã§ã¯ããšReactã«åºã¥ããŠæ§ç¯ããããããžã§ã¯ãã®éã«ã¯ãé倧ãªéããèŠããããšã¯æããŸããã ã€ãŸããReactãšVueã¯ããã©ãŒãã³ã¹ã®ç¹ã§äŒŒãŠãããäž¡æ¹ã®ãã¬ãŒã ã¯ãŒã¯ã¯ããŸããŸãªèŠæš¡ã®ãããžã§ã¯ãã®äœæã«é©ããŠããŸãã
ããšãã°ãåŸæ¥ã®Webããã€ã¹ãã¢ãã€ã«ããã€ã¹ãªã©ãããŸããŸãªãã©ãããã©ãŒã åãã«èšèšãããã¢ããªã±ãŒã·ã§ã³ãéçºããŠããå ŽåãReactã«ã¯çŽ æŽãããReact Nativeã®å©ç¹ããããŸãã ç§ã®ååã¯ãŸããReactã䜿çšããŠçµã¿èŸŒã¿TVã¢ããªã±ãŒã·ã§ã³ãäœæããŸããã ããã¯ãReactã䜿çšã§ãããšããŸããã¯ãªãã©ãããã©ãŒã ã®èå³æ·±ãäŸã§ãã ãã ããVueã«ã¯Weexã®ãããã§ã¢ãã€ã«ãã©ãããã©ãŒã çšã®ã¢ããªã±ãŒã·ã§ã³ãéçºããæ©èœãããããããã®ç¹å®ã®ãã¬ãŒã ã¯ãŒã¯ãã¢ãã€ã«ãããžã§ã¯ãã«é©ããŠããå¯èœæ§ã¯ååã«ãããŸãã
Reactãšã³ã·ã¹ãã ã¯Vueã®ãšã³ã·ã¹ãã ãããã¯ããã«å€§ãããéçºã®æåãšé床ã«å€§ããè²¢ç®ããå¯èœæ§ãããããšã«æ³šæããŠãã ããã Reactã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããã«ããã€ãã®éèŠãªæ©èœãå¿ èŠãªå Žåãåæ§ã®æ©èœãæ¢ã«å®è£ ãããŠããå¯èœæ§ããããŸãã å®éãReactåéã®å€ãã®åé¡ã«ã€ããŠãããã€ãã®è§£æ±ºçãèŠã€ããå¯èœæ§ãéåžžã«é«ãã§ãã
ç§ã®äŒç€Ÿãä»äºãããã¯ã©ã€ã¢ã³ãã®ã¿ã€ãã«é¢ãããã1ã€ã®éèŠãªèæ ®äºé ã¯ããããã®ã¯ã©ã€ã¢ã³ããäŸåããã©ã€ãã©ãªãŸãã¯ãã¬ãŒã ã¯ãŒã¯ã«ç²ŸéããŠããéçºè ãèŠã€ããèœåã§ãã ããã§ã¯ãReactã«ãå©ç¹ããããŸãããããããäžæçãªãã®ã ãšæããŸãã
ãã®ä»ã®éãã¯ãäž»ã«éçºã®è€éããšæè¡çãªè©³çŽ°ã«é¢é£ããŠããŸãã ããšãã°ãç¹å®ã®æ©èœãããã€ãã®åŠ¥åã«ãã£ãŠç¹åŸŽä»ããããããã°ã©ãã³ã°ãã©ãã€ã ã«é¢é£ãããããã®ãããã«ãããŠãæ確ãªé·æãšçæãåºå¥ã§ããŸããã ããã«ã€ããŠããã«èª¬æããŸãã
ãã®çµæãæ¢ã«Reactã«ç²ŸéããŠããããŒã ãããå ŽåãVueã«åãæ¿ããŠãç¹å¥ãªå©ç¹ã¯åŸãããªããšèšããŸãïŒä»¥äžã®æ¬ ç¹ã«ã€ããŠèª¬æããŸãïŒã ããŒã ãããã³ããšã³ãWebã¢ããªã±ãŒã·ã§ã³ã®éçºãå§ããã°ããã®å ŽåããŸãã¯BackboneãAngularJSãªã©ã®ãã¬ãŒã ã¯ãŒã¯ããæ°ãããã®ã«åãæ¿ããããšãæ€èšããŠããå Žåã¯ãåè¿°ã®Reactã®åŒ·ã¿ã¯æ¶ããŸããããVueãæ€èšããå¿ èŠããããŸãã å床ãä»ã®èŠå ã¯æè¡çãªè©³çŽ°ã«é¢é£ããŸããããã«ã€ããŠã¯ä»ãã説æããŸãã
ReactãšVueã®éã
ããããäœããããReactãšVueãæ¯èŒããŠã Vueããã¥ã¡ã³ã ïŒéåžžã«é«å質ïŒãåç §ããŠãã ãããVueããã¥ã¡ã³ãã§ã¯ããããã®é¡äŒŒç¹ãšçžéç¹ãéåžžã«ããé瀺ãããŠããŸãã ãã®ããã¥ã¡ã³ãã¯ãReactããŒã ã®ã¡ã³ããŒã§ãããã³ã»ã¢ãã©ã¢ããšãšãã«ãŠã¢ã³ã»ãŠãŒã«ãã£ãŠæžããããããç¹ã«åœ¹ç«ã¡ãŸãã ããã«ãç§ãåã£ãŠããå Žåãããã¥ã¡ã³ãããã®æç²ã¯ãç¶æ³ãå·éã«èŠãã®ã«åœ¹ç«ã¡ãŸãã
âããã©ãŒãã³ã¹
ããã©ãŒãã³ã¹ã«é¢ããŠã¯ãVueãšReactã¯éåžžã«äŒŒãŠããŸãã Vueã®ããã¥ã¡ã³ãã«ãããšãã»ãšãã©ã®å ŽåãVueã«ã¯ããããªå©ç¹ããããŸããã æè¿ã®ãã³ãããŒã¯ã§ã¯ãReact 16ã¯Vue 2.5ãããé«éã§ããããšã瀺ãããŠããŸãã ããã©ãŒãã³ã¹ãæé©åãããšãã«ããã¬ãŒã ã¯ãŒã¯ã®æäœã«ããã€ãã®éããèŠãããŸãã
Reactã§ã¯ãã³ã³ããŒãã³ãã®ç¶æ ãå€åãããšãã³ã³ããŒãã³ãã®ãµãããªãŒå šäœãåã¬ã³ããªã³ã°ãããããèªäœããéå§ãããŸãã ã«ãŒãã³ã³ããŒãã³ããšããŠæ©èœããŸãã åã³ã³ããŒãã³ãã®äžå¿ èŠãªåã¬ã³ããªã³ã°ãåé¿ããã«ã¯ã
PureComponent
䜿çšããããå¯èœãªå Žåã¯
shouldComponentUpdate
å®è£ ããå¿ èŠããããŸãã
Vueã§ã¯ãã³ã³ããŒãã³ãã®äŸåé¢ä¿ã¯ã¬ã³ããªã³ã°æã«èªåçã«è¿œè·¡ããããããã·ã¹ãã ã¯ãç¶æ ãå€åãããšãã«åã¬ã³ããªã³ã°ããå¿ èŠãããã³ã³ããŒãã³ããæ£ç¢ºã«èªèããŸãã åã³ã³ããŒãã³ãã¯ããã¹ããããã³ã³ããŒãã³ããåŒã³åºãããšãã§ããå¶éãªãã«ãèªåçã«å®è£ ããã
shouldComponentUpdate
ã¡ãœããã®ãããªãã®ãæã€ãšèããããšãã§ããŸãã ãã®ã¢ãããŒãã«ãããã¯ã©ã¹å šäœã®ããã©ãŒãã³ã¹æé©åãäžèŠã«ãªããéçºè ã¯è£å©ã¿ã¹ã¯ã解決ããã®ã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ã®åºæ¬æ©èœãäœæããã³éçºã§ããŸãã
ããã§ã2017幎12æ19æ¥ã«ãWebãã¬ãŒã ã¯ãŒã¯ã®ããã©ãŒãã³ã¹ã®åé¡ã®è€éããæãäžãã æ°ããèšäºãå ¬éããåŸããã¬ãŒã ã¯ãŒã¯ã®ããã©ãŒãã³ã¹ã«é¢ããç§ã®çµè«ãæ確ã«ããå¿ èŠãããããšã«æ°ä»ããŸããã Vueã¯å°ãé«éã§ãããçµæã¯æ£ç¢ºã«æž¬å®ãããŠãããã®ã«äŸåããŸãã
âãã³ãã¬ãŒããšJSX
åé¡ã®ãã¬ãŒã ã¯ãŒã¯ã®ãã1ã€ã®å€§ããªéãã¯ãVueããã³ãã¬ãŒãã䜿çšããReactãJSXã䜿çšããŠããããšã§ãã å€ãã®ããã°ã©ããŒã¯ãã³ãã¬ãŒãèšèªã奜ãã§ã¯ãããŸãã ã ããã«ã€ããŠãVueã®ããã¥ã¡ã³ãã«ã¯æ¬¡ã®ããã«æžãããŠããŸãã
ãã³ãã¬ãŒããæžãããã«ã¯ãè¿œå ã®ç¹æ®èšèªãåŠã¶å¿ èŠããããšäž»åŒµãã人ãããŸãã VueãšReactãæ¯èŒãããšãããã®ã¢ãããŒãã¯è¡šé¢çã§ãã ãŸããJSXã䜿çšããŠããããã°ã©ããæ°ããããšãåŠã¶å¿ èŠããªããšããæå³ã§ã¯ãããŸãããéåžžã®JavaScriptã«åºã¥ãè¿œå ã®æ§é ã«çŽé¢ããŠããããã§ãã ãã®çµæãJSã«ç²ŸéããŠãã人ã«ãšã£ãŠã¯ãJSXãç¿åŸããã®ã¯ç°¡åã§ãããJSXã䜿çšããããã«åŽåããããå¿ èŠã¯ãªããšèšã£ãŠãéèšã§ã¯ãããŸããã åæ§ã«ããã³ãã¬ãŒãã¯éåžžã®HTMLã®æ¡åŒµæ©èœã§ãããããHTMLã«ç²ŸéããŠãã人ã¯ããã»ã©èŠåŽããã«ãã³ãã¬ãŒããç¿åŸã§ããŸãã ãã³ãã¬ãŒãã®æ©èœã«ãããããå°ãªãã³ãŒããèšè¿°ããããšã§ïŒããšãã°ã
v-on
修食åã䜿çšããããšã§ïŒããã°ã©ããããå€ãã®ããšãéæã§ããããã«ããããšãã§ããŸãã åãåé¡ã解決ããããã«ãéåžžã®JSXãŸãã¯ã¬ã³ããªã³ã°é¢æ°ã䜿çšããå Žåãããã«å€ãã®ã³ãŒããå¿ èŠã«ãªãå ŽåããããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®éçºæã«ãJSXãšãã³ãã¬ãŒãèšèªãæ··åšããç¶æ³ãå¿é ã§ãã ããã¯ãããžã§ã¯ããè€éã«ããŸãã ããããã®ã¢ãããŒããéµå®ããæ¹ãç°¡åã§ããããããªããšãããåªäœããå¥ã®åªäœãžã®ç§»è¡æã«ãã³ã³ããã¹ãã®åãæ¿ããã«åãè²»ããããããšã¯é¿ããããŸããã ãã ãããã®èãã«å察ãã人ããããããããŸããã
âCSS
Vueã¯ãCSSã䜿çšããŠäœæ¥ããã®ã¯æ¬åœã«çŽ æŽãããã§ãã ãã®ãã¬ãŒã ã¯ãŒã¯ãReactãšæ¯èŒãããŠããVueã®ããã¥ã¡ã³ãã§ã¯ãCSSã«ã泚æãæãããŠããŸãã ç¹ã«Reactã§ã¯ãããããCSS-in-JSã䜿çšããããšãéåžžã«äººæ°ããããŸãã ããã¥ã¡ã³ããèŠãŠãã ããïŒ
CSS-in-JSã¢ãããŒãã®ãã¡ã³ãªãã
styled-components-vue
ã
vue-emotion
ãªã©ã®äººæ°ã®ããå€ãã®ã©ã€ãã©ãªã®ãããã§ãVueã§ãå©çšã§ããããšã«æ³šæããŠãã ããã ãã®é åã«ãããReactãšVueã®äž»ãªéãã¯ãVueãããã©ã«ãã§åäžãã¡ã€ã«ã³ã³ããŒãã³ãã®
style
ã¿ã°ã
style
èšå®ã«äœ¿çšããããšã§ãã
CSSãå«ãåäžãã¡ã€ã«ã³ã³ããŒãã³ãã奜ãã§ãã 次ã®å³ã¯ãããã¥ã¡ã³ãã®ã³ã³ããŒãã³ãã®äŸã瀺ããŠããŸãã ã³ãŒãã®äžéšã«ãã
<style>
泚ç®ããŠãã ããã

ã³ã³ããŒãã³ããã¡ã€ã«å ã®ãã®ã¿ã°ã¯ããã®ã³ã³ããŒãã³ãã®ã¹ã³ãŒãã«ãã£ãŠå¶éãããã¹ã¿ã€ã«ã«å ããŠãæ§æ匷調衚瀺ã®åœ¢åŒã§ã³ãŒããç·šéãã䟿å©ããæäŸããŸãã ããã«ããã®ã¢ãããŒãã¯Reactã®CSS-in-JSãããå®è£ ãç°¡åã§ã...
coçæ ç³»
ãã§ã«è¿°ã¹ãããã«ãReactãšã³ã·ã¹ãã ã¯Vueãšã³ã·ã¹ãã ãããã¯ããã«å€§ãããªã£ãŠããŸãã Reactã®å©ç¹ã®1ã€ã¯ç§ãã¡ã®åã«ãããŸãããããã¯åå¿è ãæ··ä¹±ãããå¯èœæ§ããããŸãã Vueã¯ã³ãã¥ããã£ã«èªç±ãäžããŸããã 代ããã«ãéèŠãªã©ã€ãã©ãªã¯å ¬åŒã®ãµããŒããåããŠããŸãïŒ
ïŒç¹ã«ïŒã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ãšã«ãŒãã£ã³ã°ã管çããããã®Vueãã«ããŒã©ã€ãã©ãªãŒã¯ãã¡ã€ã³ã©ã€ãã©ãªãŒã«åŸã£ãŠå ¬åŒã«ç¶æããã³æŽæ°ãããŸãã 代ããã«ãReactã§ã¯ããããã®æ©èœãã³ãã¥ããã£ã«è»¢éããæ¹æ³ãéžæãããŸãã ããã«ããããšã³ã·ã¹ãã ã®æçåãä¿é²ãããŸãã ãã ããReactã®äººæ°ã®ãããã§ããã®ãšã³ã·ã¹ãã ã¯Vueãããåºç¯ã§ãã
âåœå®¶ç®¡ç
ç§ã«ãšã£ãŠãã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã®ç®¡çã¯ãReactãšVueã®äž»ãªéãã§ãã Reactã®éèŠãªãã©ãã€ã ã®1ã€ã¯ãé¢æ°åããã°ã©ãã³ã°ã§ãã Reactã§ç¶æ ã管çããããã«äžè¬çãªReduxã©ã€ãã©ãªã䜿çšããŠããå Žåãã¢ããªã±ãŒã·ã§ã³éçºãžã®æ©èœçã¢ãããŒãã®äžéšãšããŠãã§ã«äœæ¥ããŠããŸãã
è¿å¹Žã®Reactã§ã®é¢æ°åããã°ã©ãã³ã°ãžã®ãã®çŠç¹ã¯ãJSéçºè ã®åºå€§ãªã³ãã¥ããã£ã«å€§ããªåœ±é¿ãäžããŸããã Reactã®äœæè ã¯é¢æ°åããã°ã©ãã³ã°ã®çºæè ã§ã¯ãããŸãã-ããã¯ããªãå€ãã¢ã€ãã¢ã§ãã ãã ããReactã¯ãæããã«ããã®æŠå¿µãæ°äžä»£ã®ããã°ã©ããŒã«åºããŸããã ããã¯ãå人çã«ã¯ããè¯ãã³ãŒããæžãã®ã«åœ¹ç«ã€åŒ·åãªããã°ã©ãã³ã°ææ³ã§ãã
é¢æ°åããã°ã©ãã³ã°ã®åºæ¬ååã®1ã€ã¯äžå€æ§ïŒäžå€æ§ïŒã§ãã èå³æ·±ãå Žåã¯ãå ç«ã®éèŠæ§ã«é¢ããæè¿ã®ãã¬ãŒã³ããŒã·ã§ã³ã§ãããããã§ã®äž»ãªã¢ã€ãã¢ã¯ããå¯äœçšããšåŒã°ãããã®ã管çããã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ãåçŽåããŠäºæž¬å¯èœã«ããããšã§ãã
Reactèªäœã¯ãé¢æ°åããã°ã©ãã³ã°ã®ç²Ÿç¥ãšå®å šã«äžèŽããŠåŒã³åºãããšã®ã§ããªãã©ã€ãã©ãªã§ããããšã«æ³šæããŠãã ããã MobXãšåŒã°ããReactã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã管çããããã®äžè¬çãªã©ã€ãã©ãªããããŸãã ã¢ããªã±ãŒã·ã§ã³ã®å¯å€ç¶æ ãå®è£ ããŸãã Vueã®ããã¥ã¡ã³ãã«ã¯æ¬¡ã®ãã®ããããŸãã
MobXã©ã€ãã©ãªã¯Reactéçºè ã³ãã¥ããã£ã§éåžžã«äººæ°ããããå®éã«ã¯Vueãšã»ãŒåãåå¿æ§ã·ã¹ãã ã䜿çšããŠããŸãã ããçšåºŠãŸã§ãReact + MobXãã³ãã«ã¯ãã詳现ãªããŒãžã§ã³ã®VueãšèŠãªãããšãã§ããŸãããããã£ãŠããã®çµã¿åããã䜿çšããŠæ°ã«å ¥ã£ãå Žåã¯ãããããVueãžã®åãæ¿ãã次ã®è«ççãªã¹ãããã§ãã
ãŠã¢ã³ã»ãŠãŒã¯åœŒã®ãã€ãŒãã®äžã€ã§ããã«ã€ããŠæžããŠããŸãã
å¥ã®äžè¬çãªVueç¶æ 管çããŒã«ã¯ãVuexãšåŒã°ããã©ã€ãã©ãªã§ãã ReduxãšVuexãæ¯èŒããèšäºããã®æç²ã¯ããããã®ã©ã€ãã©ãªã®éãã匷調ããã®ã«åœ¹ç«ã¡ãŸãã
Vuexã¯Reduxãšåæ§ãFluxã«è§Šçºãããã©ã€ãã©ãªã§ãã ãã ããReduxãšã¯ç°ãªããVuexã¯Reduxã¬ãã¥ãŒãµãŒæ©èœã®ããã«ãäžå€ã«ããŠå®å šã«çœ®ãæããã®ã§ã¯ãªããç¶æ ãå€æŽããŸãã
ããã«ãããVue.jsã¯ãç¶æ ãå€æŽãããšãã«åã¬ã³ããªã³ã°ããå¿ èŠããããã£ã¬ã¯ãã£ãã«é¢ããæ å ±ãèªåçã«ååŸã§ããŸãã Vuexã§ã¯ãç¹æ®ãªã¬ãã¥ãŒãµãŒã䜿çšãã代ããã«ãã¢ãžã¥ãŒã«ãšåŒã°ãããªããžããªã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã®ç¶æ 管çãæŽçã§ããŸãã
ããã§ã¯æè¡åéã«ç§»è¡ããŠããŸãããå€ãã®éçºè ã«ãšã£ãŠããã©ãã€ã ã¯äœããæå³ããŸãã ããããªããæ©èœçãªã¢ãããŒãã«åºå·ããŠãã人ã®äžäººãªããReactã¯ããªãã«ãšã£ãŠããé åçã§ããå¯èœæ§ãé«ãã§ãïŒãã ããMobXã䜿çšããŠãã人ã¯äŸå€ã§ãïŒã ããã§ãªãå Žåã¯ãVueã®æ¹ãé¢çœããããããŸããã
è¿œå è³æ
Dan Abramovã¯æè¿ãReactãšVueã®æ¯èŒã«ã€ããŠãTwitterã§éåžžã«ç©æ¥µçã«ã³ãã¥ãã±ãŒã·ã§ã³ããšããæåã®ãã®ãæ¯æããŸããã§ããã ãããã®ãã€ãŒãã¯äžèŠã®äŸ¡å€ããããšæããŸãã Danã¯ReactéçºããŒã ã®äžå¡ã§ããã圌ã®ã³ã¡ã³ãã«ã¯å€å°ã®åãããããŸãããããã§ãReactãšVueã®æ¯èŒã«é¢ããè¿œå æ å ±ãæäŸããŠããŸãã
ãã³ã¯ãReactã䜿çšããç°¡åãªäŸã«å¯Ÿããæ¹å€ã«å¿ããReactã®ç®çã¯ããããžã§ã¯ãèŠä»¶ããŸããŸãè€éã«ãªã£ãŠããã«ãããããããã³ãŒããç解ããããããç°¡åãªäŸãã§ããã ãçãããªãããšã ãšè¿°ã¹ãŠããŸãã
ããã§åœŒã¯ãReactãäžããäžã«åããããããŒã¿ã¹ããªãŒã ãå®è£ ããŠãããšããäºå®ã«ã€ããŠè©±ããŠããŸãã ãã®ãããå€æŽã«ãããããŒã¿ã¹ããªãŒã ã¯ã³ãŒãããŒã¹ã®äºæž¬å¯èœãªãã¹ã«æ²¿ã£ãŠãªãã€ã¬ã¯ããããŸããäœããå€æŽãããå Žåããããã¯ä»»æã®ã«ãŒãã«æ²¿ã£ãŠè»¢éãããŸãã 圌ã¯ãå Žåã«ãã£ãŠã¯ããå€ãã®ã³ãŒããæå³ãããšèšããŸãã ããããããã«ãããé·æçã«ã¯èªã¿ãããä¿å®ããããã³ãŒãã«ãªããŸãã
ããã§åœŒã¯ãåçŽãªã³ãŒããšè€éãªã³ãŒãã¯éåžžã»ãšãã©åãã«èŠãããšèšããŸãã ãŸããããã°ã©ã ã®è¡šçŸåãé«ããããã«é£ã³è¶ããå¿ èŠã®ããæ·±byã¯ãããŸããã ããŒã¿ãã€ã³ãã£ã³ã°ãŸãã¯ã©ã€ãã©ãªã«ãã£ãŠæäŸãããå¶åŸ¡ãããŒã䜿çšããå Žåãå€ãã®å Žåããã§ã¯ãããŸããã åæã«ãããã¯Vueãæªãããšãæå³ããã®ã§ã¯ãªãïŒå€ãã®äººããã®ãã¬ãŒã ã¯ãŒã¯ã®æ©èœã奜ãïŒããHello Worldããããå°ãªãããšã«åºã¥ããŠãã¬ãŒã ã¯ãŒã¯ãå€æããããã«ã圌ã®æèŠã§ã¯ãçŸå®ã奪ããŸãã
ãŸãšã
èŠããŠããããã«ããã®è³æã®åé ã§ReactãšVueã®æ¯èŒã®çµæããŸãšããŸããã ããã§ãããã§ç§ã¯åœŒãããã¢ã³ã»ã¯ãã ãŠã§ã«ã«äžãããšãŽã¡ã³ã»ãŠãŒãšã®ã€ã³ã¿ãã¥ãŒããåŒçšããããšæããŸãã äŒè©±ã¯ãVueãä»ã®ãã¬ãŒã ã¯ãŒã¯ãšæ¯èŒããŠã©ã®ããã«èŠãããã«ã€ããŠã§ããã
æ¢åã®ãã¹ãŠã®ãã¬ãŒã ã¯ãŒã¯ãèæ ®ãããšãVueã¯ããããä»ã®ãã®ãããReactã«äŒŒãŠããŸãããããåºãæå³ã§ã¯ããã¹ãŠã®ãã¬ãŒã ã¯ãŒã¯ã®äžã§ãç§ãäœæãããããã°ã¬ãã·ããã¬ãŒã ã¯ãŒã¯ããšããçšèªãšåŒã¶ããšãã§ããŸãã Vueã¯ãããŒã¿ãšã³ã³ããŒãã³ãã®ãã€ã³ãã£ã³ã°ãè¡šãã³ã¢ã§ãããReactã®ããã«èŠãããšããèãæ¹ã§ãã éåžžã«æ£ç¢ºã«å®çŸ©ããããéãããäžé£ã®ã¿ã¹ã¯ã解決ããŸãã Reactãšæ¯èŒããŠãVueã¯ãã¯ãããžãŒã®ã¢ã¯ã»ã·ããªãã£ã«æ³šç®ããŠããŸãã ã€ãŸããHTMLãJavaScriptãCSSãªã©ã®åºæ¬ãç¥ã£ãŠãã人ãã§ããã ãæ©ãåŠç¿ã§ããããã«ããããšãç®çãšããŠããŸãã
Vueã¯ãã³ã³ãã¯ãã§æå°éã®ã³ã¢ãæã€ãã¬ãŒã ã¯ãŒã¯ãšããŠæ§ç¯ããããšããŠããŸãã ããããã¢ããªã±ãŒã·ã§ã³ã®è€éããå¢ãã«ã€ããŠãæ°ãã課é¡ã«çŽé¢ããã®ã¯ããèªç¶ãªããšã§ãã ããšãã°ãã«ãŒãã£ã³ã°ãã³ã³ããŒãã³ãéã®ããŒã¿äº€æã倧èŠæš¡ã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã®åé¢ã åãã©ã€ã³ã§-ã³ãŒãããŒã¹ãã¢ãžã¥ãŒã«åããã®ã«åœ¹ç«ã€ãããžã§ã¯ããæ§ç¯ããããã®ããŒã«ã®å¿ èŠæ§ã ããã§ã¯ãã¹ã¿ã€ã«ã®æ§æãšã¢ããªã±ãŒã·ã§ã³ãæ§æããããŸããŸãªè¿œå ãªãœãŒã¹ã«ã€ããŠè³ªåã§ããŸãã EmberãAngularãªã©ãVueã³ã¢ãããå¹ åºãã¿ã¹ã¯ãã«ããŒãããããå®å šãªåŒã³åºããå¯èœãªå€ãã®ãã¬ãŒã ã¯ãŒã¯ã¯ãéçºè ã«ééããå¯èœæ§ã®ãããã¹ãŠã®åé¡ã®è§£æ±ºçãæäŸããããšãããã¬ãŒã ã¯ãŒã¯ã«ãã¹ãŠãçµã¿èŸŒãããšãè©Šã¿ãŸãã
ããã¯ããã€ãã®åŠ¥åã§ãã ããã°ã©ããŒãéçºäžã«ãã¬ãŒã ã¯ãŒã¯ãã©ã®ããã«äœ¿çšãããã«ã€ããŠã®ããå€ãã®ä»®å®ãäœæããããšããã®ãããªãã¬ãŒã ã¯ãŒã¯ãå¯èœã«ããæè»æ§ãäœäžããŸãã æåã®å察ã®å¥ã®ãªãã·ã§ã³-ãšã³ã·ã¹ãã ã掻åã«æºã¡ãŠããReactã§è¡ãããããã«ããã¹ãŠã®è£å©ã¿ã¹ã¯ã®ãœãªã¥ãŒã·ã§ã³ãã³ãã¥ããã£ã«ã·ããããŸãã ããã§ã¯å€ãã®ã¢ã€ãã¢ã絶ããçºçããŸããããã®ç¶æ ã§ã¯äžå©ãªç¹ããããŸãã ã«ãŒãã«ãéåžžã«éãããæ©èœã»ãããæäŸãããšãã«ãVueã¯åŠ¥åç¹ãèŠã€ããããšããŠããŸãã ãã ããããã«å ããŠãã«ãŒãã£ã³ã°ã·ã¹ãã ãããããžã§ã¯ãæ§ç¯çšã®ããŒã«ã»ãããã³ãã³ãã©ã€ã³ããŒã«ãªã©ã®ã¢ããªã±ãŒã·ã§ã³ç¶æ 管çã·ã¹ãã ãªã©ã段éçãªå®è£ ã«é©ãããœãªã¥ãŒã·ã§ã³ãæäŸããŠããŸãã ãããã¯ãã¹ãŠå ¬åŒã«ãµããŒããããååã«ææžåãããŠãããå ±å䜿çšãæ³å®ããŠèšèšãããŠããŸãããéçºè ã¯ãããããã¹ãŠäœ¿çšãã矩åã¯ãããŸããã ããã¯ããããããã¬ãŒã ã¯ãŒã¯ãšããŠã®Vueãä»ã®åæ§ã®ãœãªã¥ãŒã·ã§ã³ãšåºå¥ããæãéèŠãªããšã ãšæããŸãã
芪æãªãèªè ïŒ æ¥å¹Žã®ReactãšVueã®éåœã¯äœã ãšæããŸããïŒ