ã¹ããŒã«ãŒã«ã€ããŠïŒ
Evgeny Gusevã¯éçºè ãšããŠ10幎以äžã®çµéšããããéå»æ°å¹ŽéWrikeã§åããŠããŸãã æåã«åœŒã¯C ++ / CïŒã§éçºãããã®åŸããã³ããšã³ãã®ãã¹ãŠã®åããšãéã決ããŠããã«ç§»åããŸããã Wrikeã¯çŸåšJavaScriptã䜿çšããŠããŸãããã Dartã䜿çšããŠããŸãã
Ilya Taratukhinã¯çŽ7幎éåæ¥éçºã«æºãã£ãŠããããã¹ãŠãæåç·ã«ããŸãã 圌ã¯2GISã§åããŠããããã€ãã£ãJSã§æžããŠããããã§ã«æ»ã«ãããŠããKnockoutã®ããã§ãã Wrikeã§ã®ä»äºãšäžŠè¡ããŠãIlyaã¯åœŒã®ãããžã§ã¯ããéçºããŠãããReactã«ç©æ¥µçã«æ²¡é ããŠããŸãã Ilyaã¯1幎以äžã Dart + Angular 2ãã³ãã«ã䜿çšããŠããŸãã çµéšã¯æ¬åœã«é¢çœãã§ã
ã€ãŸããEugeneã¯AngularãIlyaã¯Reactã§å€ãã®çµéšãæã£ãŠããŸãã ãã¹ãŠãæ£çŽã«ããããã«ã圌ãã¯ãã¯ãããžãŒãåãæ¿ãããããã®ãã¬ãŒã ã¯ãŒã¯ã§ããªãåçŽãªãããžã§ã¯ããäœæããããšããŸããã
DisclamerïŒããã«ãRIT ++ 2017ã§ã®Yevgeny GusevãšIlya Taratukhinã®ã¬ããŒãã®ãã©ã³ã¹ã¯ãªãããAngularãããŒãžã§ã³4.2.0ããã³React-15.5.0ã§ãã£ãã¬ããŒãã®äœææã«åé¡ã®ãã¹ãŠãçå®ã§ãã ãã ãããã®æ¯èŒã¯ãAngular 6.0.0-rc.3ããã§ã«ãªãªãŒã¹ãããŠãããšããäºå®ã«ãããããããéèŠãªå€æŽãçºçããŠããªãæãéèŠãªåŽé¢ã察象ãšããŠããŸãã
ããŒã1.玹ä»
ãããžã§ã¯ãã®æ¬è³ªã¯æ¬¡ã®ãšããã§ããéœåžã®ååãå ¥åãããå ¥åãã£ãŒã«ãããããŸãã倩æ°ãµãŒããŒã®http-requestsã«ãã£ãŠãéžæããéœåžã®å€©æ°ãããããŸãããµã³ã¯ãããã«ãã«ã¯ã§ã¯åã³æãã§ãããŒã«ã飲ãå¿ èŠããããŸãã è€éãªããšã¯äœããããŸããã
åå¿ãã
ãŠãŒãžãŒã³ïŒ çæ³çãªã¹ã¿ãŒã¿ãŒããã¯ãéžæããããšã§ãåœç¶ãReactãšç¥ãåãã«ãªããŸãããReactã«ã€ããŠã¯äœãããããŸããã
顧客ãç§ã®ãšããã«æ¥ãŠã倩æ°ãŠã£ãžã§ãããäœæããããã«é Œãã ãšããŸãããã ãã®åé¡ã解決ããããã«ãç§ã¯ãããžã§ã¯ããè¡ãã®ã«åœ¹ç«ã€ãã®ãæ¢ãå§ããŸããããããŠãç§ãçã«æšèŠããçŽ æŽããããµã€ããèŠã€ããŸããã ç§ã¯ããã«è¡ã£ãŠãã®åçãèŠãŸãïŒ108åã®ã¹ã¿ãŒã¿ãŒããã¯ïŒçŸåš189åãããŸãïŒããã®ãã¡20åã¯æå°ãšããŠããŒã¯ãããŠããŸãã
ãã¬ãŒã ã¯ãŒã¯ã®éžæã«åé¡ããããŸããããããŠã108ã®åé¡ããããŸããã ããããç§ã¯ãããããŠã Facebook StarterpackãéžæããŸãã ã
Reactãããããæ¹æ³ã§äžå·ãããã¹ãŠãæªããšèšããªããã°ãªããŸããããå®éã«ã¯ãã¹ãŠãããŸããããéåžžã«ããŸãæ©èœããŸãã ã HTTPãªã¯ãšã¹ããReactã«éä¿¡ããæ¹æ³ ããã°ãŒã°ã«ã§èª¿ã¹ãããšããå§ããŠãstackoverflowãžã®ãªã³ã¯ãååŸããŸãããããã§ãfetchãaxiosãªã©ã䜿çšã§ãããšèšãããŸããã
æ³åããŠã¿ãŠã1ã€ã®åé¡ãããã108ã®åé¡ãè¿œå ãããããã«3ã€ã®åé¡ãè¿œå ãããŸããã
IlyaïŒ Eugeneã¯JavaScriptãã2幎ã»ã©é¢ããŠããããšã説æããJSã§HTTPãªã¯ãšã¹ããã©ã®ããã«è¡ãããã®ãã ãã§ããã§ãããã®ãå¿ããŠããŸã£ã ãã¹ãŠã®ãã©ãŠã¶ã«ããã¯ãã§ãã ãã ãããã®å Žåã¯ãããªãã£ã«ãåºå®ãããšåé¡ãããŸããã
ãŠãŒãžã³ïŒãã¡ãããaxiosãéžã³ãŸããã åçŽãªãHello worldïŒãã¢ããªã±ãŒã·ã§ã³ã«æ¬¡ã«å¿ èŠãªã®ã¯ãåçŽãªã¢ããªã±ãŒã·ã§ã³ãäœæããããšã§ãã
ã¬ã³ããªã³ã°é¢æ°ããããããã¯åçŽãªå ¥åãæã£ãŠããŸããã€ãŸãããã¹ãŠãåçŽã§ã-ããªãã¯äœããé§åããonChangeã¯setStateãè¡ããŸãã
ãã€ã³ãã䜿çšããå¿ èŠããããŸãã ïŒ ããŠãããã¯ããããReactã®åé¡ã§ã¯ãããŸãã-ããã¯ç§ã®åé¡ã§ãã ãã1ã€ã®åçŽãªãHello worldïŒãã¢ããªã±ãŒã·ã§ã³ã«ã¯ãã¹ããå¿ èŠã§ãã
ãã¹ãã«ã€ããŠç°¡åã«-ãã¹ãŠãæªã
ç§ã¯æåã«ããããèµ·åããããšã«æåããŸããã§ãããç§ã¯ãããããŠãã€ãªã€ãããè³¢ããšå€æããŸããããç§ã¯åœŒã«å°ããããšããããŸããã§ããã
ããŒãžã³ããŒã
EugeneïŒ Reactã§ã®è±å¯ãªçµéšã®åŸã次ãæ確ã«ããããšæããŸããã¹ã¿ã€ã«ã¬ã€ãã«åŸã£ãŠã³ã³ããŒãã³ãåãšã¯ã©ã¹åãçµã¿åãããæ¹æ³ã¯ïŒ ã€ãªã€ãReactã§ã³ã³ããŒãã³ããäœãšåŒã³ãŸããïŒ
ã€ãªã€ïŒã³ã³ããŒãã³ãã¯ç¹å®ã®ã¯ã©ã¹ãªã®ã§ã倧æåã§ãã£ã¡ã«ã±ãŒã¹ãšåŒã³ãŸãã
EugeneïŒããŒã¯ã¢ããã«ã¯å°ããªæåãšãã€ãã³ã䜿çšããå¿ èŠããããããç§ã®äžã®ãã¹ãŠãéããŸã«ãªããŸãã JSXããŒã¯ã¢ããã¯ã©ã¹ã倧æåã«ãªã£ãŠããå ŽåïŒãã£ã¡ã«ã±ãŒã¹ïŒãæ°åãæªããªããŸãã
第äºã«ã äŸåæ§æ³šå ¥ãå¿ èŠã§ãã Reactã«React DIã¯ãããŸããïŒ
IlyaïŒ Reactèªäœã«ã¯ãããŸããããDIãå®å šã«å®è£ ããããäœããã®çš®é¡ã®ç°¡æããŒãžã§ã³ã«ããDIãå®è£ ããããŸããŸãªããŒã«ããããŸãã
ãŠãŒãžãŒã³ïŒãããã100人ããã®ïŒ ããããããã§ãïŒ
- èšäºãèªãïŒ4ïŒããã¯ãé€ãïŒã
- æ¥ç¶ãããŠããã¢ãžã¥ãŒã«ïŒ3ã
- ãããŠããŸã ReduxããããŸããïŒ
ReduxãFluxãããã³ãã®ä»ã®ãakããããã«ãã蟌ãã å Žåã«ã©ããªãããèŠç©ãããŸãã
åèš ïŒ5ã€ã®ãã¡4ã€ã
ãªã5ã§ã¯ãªã4ãªã®ãïŒ ã¯ããStarterpackã§ã¯ãååãšããŠãã¹ãŠãæ確ã«ãªã£ãŠããŸããããã®Starterpackããé ããæ©ããéåžžã®å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ãäœæããå¿ èŠããããšæããŸãã 4ã€ã®èšäºã§ã¯ãªãããããã104ã®èšäºãèªãã§ãçæ³çãªã¹ã¿ãŒã¿ãŒããã¯ãäœæããå¿ èŠããããšæããŸãã
ã€ãªã€ïŒç§ã®çµéšã«ç§»ããŸãããã ããªããAngularãæ±ããšããäœããã¹ãããæ瀺ããGoogleã®ãããªå·šäººãããã®ã§ããã¹ãŠãããç°¡åã§ãããããŠç§ã¯éåžžã«ããã«Angular CLI QuickStartã«åºäŒããŸããã
ãã®çµæãã³ã³ãœãŒã«ã§4ã€ã®ã³ãã³ããå®è¡ããŸããã
ç§ã¯ããã³ããšã³ãéçºè ã§ã-Node.jsãšNPMãæã£ãŠããŸã-ãã®ãããªåé¡ã¯ãããŸããã ãã®çµæã 10å㧠ãããããªããŒããšãã«ããã¹ããåããå®çšçãªã¢ããªã±ãŒã·ã§ã³ãåŸãããŸãã ã ãã¹ãŠãã¯ãŒã«ã§ãå€ãã®ãã®ãè¿œå ãããŸãã-ç§ã¯ä»æã£ãŠãããã®ãããã«ç解ããããšããã§ããŸããã§ããã
次ã®ã¿ã¹ã¯ã¯åãã§ããHTTPãªã¯ãšã¹ããäœæãããã®åã«çµæã衚瀺ããã³ã³ããŒãã³ããäœæããå¿ èŠããããŸãã Angular Scaffoldingã䜿çšãããšããã®ã³ãã³ãã1è¡ã§å®è¡ã§ãããã®ã³ãã³ããšåŒã°ãã4ã€ã®ãã¡ã€ã«ãåŸãããŸãã
- ãã³ãã¬ãŒããã¡ã€ã«ã
- ã¹ã¿ã€ã«ãã¡ã€ã«ã
- ã³ã³ããŒãã³ããã¡ã€ã«ã
- ããŒãã¹ãšããŠå±ãããã¹ãã¯ãã¹ã±ã«ãã³ã§ãããã³ã³ããŒãã³ããåäœããŠããŠåæåãããŠããããšã確èªããæåã®ãã¹ãã§ãã
EugeneïŒ Facebookã®React in the Starterpackã«ããã¹ãããããŸããããªãããã®çç±ã§æ©èœããŸããã§ããã
Ilya次ã®ã¹ãããã¯ãHTTPãªã¯ãšã¹ããäœæããããšã§ãã ã©ãããããããAngularã®ããã¥ã¡ã³ããçªç ŽããäŸãèŠã€ããŠã»ãŒå®å šã«ã³ããŒããgetWeatheré¢æ°ãåŒã³åºããŸããã
ãããŠãäœãååŸã§ããŸããã§ãããconsole.logããããã¯ãŒã¯ã¿ãã確èªããŸããã
EugeneïŒ Angularã«ã€ããŠã»ãšãã©æžããŠããªãããŸãã¯æžããŠããªã人ã«ãšã£ãŠãRxJSã§ã®Observableã¯éåžžã«é¢åã§ãã 賌èªãããŸã§ã¯æ©èœããŸããã
ã€ãªã€ïŒäœãããããããšæããŸãããããã®ãã³ãã¬ãŒããã©ããã«æ¿å ¥ããæºåããŸã ã§ããŠããŸããã§ããã AngularãæäŸããHTTPã©ã€ãã©ãªãä»ããHTTPãªã¯ãšã¹ããäžè¬çã«æ©èœããããšã確èªãããã£ãã ãã§ãã ããã§ç§ã¯ããã¥ã¡ã³ããŒã·ã§ã³ããã£ãšèª¿ã¹ãŠã Promiseã§ãããããæ¹æ³ãèŠã€ããŸããã
ã ãããç§ã¯ããããã£ãããããåŒã³åºãã-ããã¯ãã¹ãŠåããã äžè¬çã«ãç§ã¯æºè¶³ããŸãã ã
次ã®åé¡ã 2017幎ã«ãã³ãã©ãŒãåã£ãŠTypeScriptã§èšè¿°ããŸãããã³ã³ããã¹ãããã€ã³ãããå¿ èŠããããŸããDartã®åã³ã«æ £ããŠããã®ã§ãå°ãã·ã§ãã¯ãåããŸããã
ãããç§ã®åé¡ãçµãã£ãå Žæã§ãã åäœããã¢ããªã±ãŒã·ã§ã³ãå ¥æããŸãããããŸã ããã€ã質åããããŸãã
æªè§£æ±ºã®è³ªå
- ã¢ã»ã³ããªãå¶åŸ¡ããæ¹æ³ã¯ïŒ
倩æ°äºå ±ã¢ããªã±ãŒã·ã§ã³ã®äœæã¯éåžžã«ç°¡åã§ãã»ãšãã©ããã«äœ¿çšã§ããŸãã ããããæ¬æ Œçãªãããžã§ã¯ããéå§ãããšãã¯ãã¢ã»ã³ããªã管çããå¿ èŠããããŸãã ããã§ãã¢ã»ã³ããªå šäœãcli-starter-kitå ã«é ãããŸããã
EugeneïŒ Angular CLIå ã«ã¯ãäžèŠãªã¹ã¿ãŒã¿ãŒäŸåé¢ä¿ããã¹ãŠåé€ããã¹ã¿ãŒã¿ãŒã¢ããªã±ãŒã·ã§ã³ããå¿ èŠãªãã®ããã¹ãŠäœæã§ããngæåºã³ãã³ãããããŸãã
- less / sass / postcssãæ¥ç¶ããã«ã¯ïŒ
ã€ãªã€ïŒæ¬¡ã®ã¢ã€ãã ã ããªããèŠãããã«ãã¹ã¿ãŒã¿ãŒãããã¯ç§ã®ããã«CSSãã¡ã€ã«ãçæããŸããããç§ã¯ãã§ã«ããå°ãªããsassãã¹ã¿ã€ã©ã¹ãpostcssã䜿ãããã§ãã ç§ã¯ãŠãŒãžãŒã³ã«é Œã£ãïŒãã©ãããŠïŒ ãããã圌ã¯ãã¡ã€ã«ã®ååãå€æŽããã ãã§ãå®éã«ã¢ã»ã³ããªã¯èªåçã«å°ãªããã¡ã€ã«ãéžæããŸããã ããäžåºŠãç§ã¯ææã«è¥²ãããŸãããAngularãããèªäœã§ã©ãã ãåŒã£åŒµãã®ã§ããããã
åèšïŒ
ç§ã®çµè«ã¯ã Angularã¯ããã³ããšã³ãã§ç¹ã«äœæ¥ãããŠããªãã£ã人 ãããšãã°.netããæ¥ã人ã«ãšã£ãŠå®ç§ãªã¢ããªã±ãŒã·ã§ã³ã§ãããšããããšã§ã ã 圌ã¯ãDIãããããçš®é¡ã®è€éãªæœè±¡åã«ç²ŸéããŠãããAngular 4ã§ã¯ã³ã³ããŒãã³ããçžäºã«ç¶æ¿ã§ããŸãã
ãã ãããã¬ãŒã ã¯ãŒã¯ããŒã«ãåŠç¿ããæºåãããå¿ èŠããããŸããå€ããèªãå¿ èŠããããŸãã ããã¯æ¬åœã«èšå€§ãªéã®ããã¥ã¡ã³ãã§ãã EugeneãReactãšé£æºããããã«ã€ã³ã¿ãŒããããçå£ã«æ€çŽ¢ããªããã°ãªããªãããšãæããŠããå Žåããã¹ãŠã1ãæã«åéããŸããèªã¿ãç解ããã ãã§ãã
ããŒã2.çŽäº
åèš-2ã€ã®ãã¬ãŒã ã¯ãŒã¯ã«äŒããŸããã ç§ãã¡ã®è°è«ã¯äœã§ããïŒ
$$$ã¹ãŒããŒãããžã§ã¯ã$$$
shawarmaãµã€ãïŒãŸãã¯shawarmaïŒãäœæããŸããã ããã€ãã®ã¿ããããå°ããªã©ã³ãã£ã³ã°ããŒãžããããŸãã ãããã®1ã€ã¯ã³ã¡ã³ãã§ããç¶æ ãã©ã®ããã«æ©èœããããã©ã®ããã«ä¿åãããããªã©ãç解ã§ããŸãã æåŸã®ã¿ãã¯ããããïŒå€éšJSã©ã€ãã©ãªãšããŠã®ãããïŒãšã®é£çµ¡å ã®ãããã¯ã§ãã å°ãåŸã§ãããã«æ»ããŸã-ãããåé¡ã§ãã
10,000ã«ãŒãã«ãŸãã¯shavermaã®5ã€ã®ç¡æéšåãååŸã§ããã·ã³ãã«ãªã¢ããªã±ãŒã·ã§ã³ãäœæããŸããã
Data-Flow-ãã¬ãŒã ã¯ãŒã¯ã®ãããŒãã©ã®ããã«åãããèŠãŠã¿ãŸãããã è§åºŠããå§ããŸããã
è§åºŠïŒå·ŠïŒ
ãã¹ãŠã¯ç¶æ ããå§ãŸããŸãã ç§ãã¡ã®å Žåãããã¯åãªãã³ã¡ã³ãã®éåžžã®é åã§ãããããããã³ã¡ã³ããååŸããäœããã®æ¹æ³ã§ããããã¬ã³ããªã³ã°ãŸãã¯è¿œå ããŸãã
@ãä»ããŠãã®ç¶æ ãã³ã³ããŒãã³ãã«å ¥ããŸã-ãã¹ãŠã®Angularã®äººã ã¯ç¬ãšè§ãã£ãã倧奜ãã§ãã ããŒã¯ã¢ããã®è§æ¬åŒ§ã䜿çšããŠããã®ã³ã¡ã³ããŠã£ãžã§ããã«ç¶æ ïŒã³ã¡ã³ãïŒãæžã蟌ãŸããããšãèšè¿°ããŸãã
ãããããŠã£ãžã§ããããäœããè¿œå ãããå ŽåããããŠããç§ãå·ã€ãããšãæããŠããªããªãããªããžã§ã¯ãå€æŽãããã ãã§ãã ããããããããªãæ¹ãããã§ãã
@output
ãšãã£ããèšè¿°ããæ¹ãè¯ãã§ãããããã¯ã€ãã³ãã§ã¯ãªããRxJSããã®ã¹ããªãŒã ã§ãããããã£ãŠããããã¢ããã¯è¡šç€ºãããŸããããåäœãå°ãç°ãªããŸãã
ReactïŒå³ïŒ
Reactã«ãç¶æ ããããŸãã Reactã¯äžè¬ã«ãå€ãã®ç°ãªãããŒã«ãããFluxã¢ãŒããã¯ãã£ã®äœ¿çšãæšå¥šããŠããŸãã ããããå°éå ·ãä»ããŠã³ã³ããŒãã³ãã«ç¶æ ã®æçãæž¡ããŸãã ãã®èšèããã·ã¢èªã«ç¿»èš³ããæ£ããæ¹æ³ãèŠã€ãããŸããã§ããã
ãŠãŒãžãŒã³ïŒãã¶ããç©ã®ãããªå°éå ·ã翻蚳ã§ããŸã-ãããªãã¯ããã§ããããŒã¹ãã
å°éå ·ã§ã¯ãããŒã¿ãã¹ããŒããŸã-ã³ã³ããŒãã³ãã§ã¯ãcommentsããããã£ããã³ã¡ã³ããååŸã§ããŸãã ã¯ãªãã¯ãè¿œå ãªã©ã®äœããã®ã€ãã³ããåŠçããå Žåãpropsã³ã³ããŒãã³ãã«ãéä¿¡ããŸãããããã¯åãªãã³ãŒã«ããã¯ã«ãªããŸãã
è§åºŠ
ã¬ã³ããªã³ã°ããå¿ èŠã®ããã³ã¡ã³ãã ãã§ãªãã巚倧ã§å€§ããªã³ã³ããŒãã³ããããããã®ã³ã³ããŒãã³ããããå Žåããã¡ããå ¥åºåãè¡ãã®ã¯ããªãã°ãããŠããŸãã ããããããããå°ããªã³ã³ããŒãã³ãã§ããå Žåãããšãã°ã倧ããªã³ã¡ã³ããŠã£ãžã§ããå ã«ã¯ã¢ãã¿ãŒãªã©ããããå ¥åºåããã³è§ãã£ããéããŠãããŒã¿ãããåãã§ããŸãã
åå¿ãã
ãŸã£ããæ°ãããã®ã¯äœããããŸããããã¹ãŠããŸã£ããåãã§ããåã³ã³ããŒãã³ãã«å°éå ·ãæž¡ããCommentsWidgetå ã§ã³ã¡ã³ããæŽçããcommentã³ã³ããŒãã³ãå ã§ç¹å®ã®ã³ã¡ã³ããæž¡ããŸãã ãŸããCommentFormã䜿çšããŠãaddã€ãã³ãããªãã¹ã³ããäœããã®æ¹æ³ã§åŠçã§ããŸãã
EugeneïŒãã¡ãããéåžžã«å€§ããªã¢ããªã±ãŒã·ã§ã³ãããå Žåãããããã®ã¯ã°ãããŠããŸãã ãããã®å ¥åºåã®å·šå€§ãªããªãŒãã§ããŸãã ããããAngularã«ã¯äŸåæ§æ³šå ¥ããããŸãïŒ React DIã¯ãããŸããïŒ
ã€ãªã€ïŒèª°ããç¥ããªãã£ãå ŽåãAngularã§äœæ¥ããåã«ç§ãç¥ããŸããã§ãã-ãµãŒãã¹ãšã³ã³ããŒãã³ãéã®æ¥ç¶ãéåžžã«æçœã«èšå®ã§ããŸãããã¹ãŠãæ··ä¹±ããããªãã¡ã¯ã¿ãªã³ã°ã®ãã³ã«è¶³ãèžã¿å ¥ããããšãã§ããŸãã
EugeneïŒ Angularã¯æããªäººåãã§ã¯ãããŸããã
ç§ãã¡ã¯ãµãŒãã¹ãå©çšããŸã-ããã¯æ¬è³ªçã«ãç¹å®ã®æ³šéãæã€åãªãã¯ã©ã¹ã§ãã å¯èœãªéãæŒã蟌ã¿ãŸã-ããããç§ã¯ããªãã«ãããäŒããŸããã§ããïŒ äžè¬çã«ã¯ãå¿ èŠãªå Žæã§ã®ã¿æŒã蟌ã¿ãŸãããã®å Žåã¯ãã³ã¡ã³ããŠã£ãžã§ããã§è¡ããŸãã
ãããŠããããå¿ èŠã§ãªãå Žåãåãå ¥åºåã䜿çšããŸãã ã€ãŸããäžçš®ã®ãã€ããªããã·ã¹ãã ã§ãã ã³ã¡ã³ããŠã£ãžã§ããã§ã¯ããµãŒãã¹ã³ãŒã«ã䜿çšããŠãªããžã§ã¯ããååŸããŸãããã¹ãŠãéåžžã©ããã§ãã
IlyaïŒ Reactã«ã¯ãããšãã°äžéšã®ããŒã¿ãäžããäžã«ã¹ã¯ããŒã«ã§ããããã«ãããããã€ãã®ç°¡ç¥åãããDIããªã¢ã³ãããããŸãã
ReduxãäŸãšããŠäœ¿çšããŸãããããã¯åã«æã人æ°ã®ããã©ã€ãã©ãªã ããã§ãã ä»ã®ããŒã«ãåæ§ã«æ©èœããŸãã
åºèããããŸãã ããžãã¯æ¥ç¶æ©èœã䜿çšããŠãã¹ãã¢ãæäžäœã³ã³ããŒãã³ãã«æ¥ç¶ããŸãã æäžäœã³ã³ããŒãã³ãã¯ãããŒã¿ãããç¹å®ã®åœ¢åŒã®ã¹ãã¢ãããããšãèªèããŠãããã¢ã¯ã·ã§ã³ãä»ããç¹å®ã®é信圢åŒã«ãããäœããçºçããããšãã¹ãã¢ã«éç¥ã§ããŸãã
ãããã£ãŠã2çš®é¡ã®ã³ã³ããŒãã³ãããããŸãã
- ç¶æ
ã®ååšãèªèããŠããäžéšã®ã¹ããŒãã³ã³ããŒãã³ãã¯ããã®æŽæ°ã«é¢ããæ
å ±ãåãåããæŽæ°ãå¿
èŠã§ããããšãç¶æ
ã«éç¥ããŸãã
- 䜿çšã§ããã³ã³ããã¹ãã«äŸåããªãã³ã³ããŒãã³ãã¯ãå¿
èŠãªå Žæã§å¿
èŠãªå°éå
·ãå
¥åã«æå
¥ããã ãã§ãã
EugeneïŒãããŠãAngularã§ã¯ããã¹ãŠã®ã³ã³ããŒãã³ããã¹ããŒãã§ãã
ã³ã³ããŒãã³ãå®çŸ©
ã³ãŒããšã2ã€ã®ãã¬ãŒã ã¯ãŒã¯ã§ã³ã³ããŒãã³ããäœæããæ¹æ³ãèŠãŠã¿ãŸãããã
è§åºŠ
Angularã§ã¯ãã³ã³ããŒãã³ãã¯åçŽãªéåžžã®JSXãTypeScriptããŸãã¯Dartã¯ã©ã¹ã§ããã@ãä»ããè¥å¹²ã®æ³šéãä»ããã¯ã©ã¹ã§ãã ã»ã¬ã¯ã¿ãŒãä»ããŠèšè¿°ã§ããŸãããè§åºŠãèŠãŠãããŒã¯ã¢ããã«ãã®ãããªã¯ã©ã¹ãããããã£ããŸãã¯ã¿ã°ãããå Žåãããã¯ã³ã³ããŒãã³ãã§ãããããã³ã³ããŒãã³ããšããŠæ±ããŸããã
ã€ãªã€ïŒçŽäºãããããšãæãåºãããŠãã ããã ãããã£ãŠãç§ã¯å¯èœãªéãå察ããŸãã
åå¿ãã
ãã®ãããReactã§ã¯ãããããæ©èœçãªsetStateã³ã³ããŒãã³ãã«ã€ããŠèª¬æããŸãã å ¥åãšããŠpropsãªããžã§ã¯ããåããJSXãã³ãã¬ãŒããè¿ãé¢æ°ããããŸãã
EugeneïŒ Angularã®ãã³ãã¬ãŒãã¯ãã·ã³ãã«ã§ããããããHTMLã§ãã
ã€ãªã€ïŒéåžžã«æ確ã§ãïŒ åç §ïŒngForãè§æ¬åŒ§ãã³ã¡ã³ããæ¬åŒ§ãonADD-ãã¬ãŒã³HTMLïŒ
ãŠãŒãžãŒã³ïŒãã¡ãããããªãã¯äœããåŠã¶å¿ èŠããããŸã-ã¢ã¹ã¿ãªã¹ã¯ãæ¬åŒ§ãç¬ã ãããã圌ãã¯Angularã¯ãžã£ãã¹ãã«ãã£ãŠæžãããããããã®ãããªãã®ã§ãããå€ãã®ããŒã¯ãŒããæã£ãŠãããšèšããŸãããäžè¬çã«ã¯ãã¬ãŒã³HTMLã§ãã
åå¿ãã
ã€ãªã€ïŒæ£çŽã«èšããšãReactã¯ããã»ã©æ®éã®HTMLã§ã¯ãªããšããããšã§ãã ããã§JSXã«ã¯ãèšè¿°ããå 容ã«å¿ããŠãHTMLã³ãŒããšJSã³ãŒãããŸãã¯TypeScriptã³ãŒããæ··åšããŠããŸãã ã¯ãããã®ãããªãã¥ã¢ã³ã¹ããããŸãããããªãèªèº«ã®äžè©±ãããã®ã«ååã§ãããã³ã³ããŒãã³ãã®è¡šç€ºã«é¢é£ããã³ãŒãã®ã¿ãã³ã³ããŒãã³ããã¡ã€ã«ã«èšè¿°ããŸãã ãããŠããã¹ãŠã®éãããžãã¯ã¯ãã¬ãã¥ãŒãµãŒãã¹ãã¢ãã³ã³ããŒãã³ãããé¢ãããã«ããŒã«åŒãåºãããªããã°ãªããŸãããããããã°ããã¹ãŠããããã§éæã«ãªããŸãã
JSã§äŒç€Ÿã®éçºè ãšã¬ã€ã¢ãŠããã¶ã€ããŒãå ±æããå Žåãã¬ã€ã¢ãŠããã¶ã€ããŒã¯ãã®ãããªã³ã³ããŒãã³ãã®èª¬æã«ããã«æ £ããããã«é¢ããåé¡ã¯çºçããŸããã
è§åºŠ
EugeneïŒ Angularã§ã¯DIã¯ã©ã®ããã«æ©èœããŸããïŒ åºæ¬çã«ãããªãã¯éæ³ã䜿ã£ãŠæ¬¡ã®ããã«èšãã ãã§ãã
-èŠãŠãã³ã³ã¹ãã©ã¯ã¿ã«ãã®ãããªãµãŒãã¹ããããŸãïŒãã®å Žåã¯commentsServiceïŒã
ããã ãã§ããAngularã¯ãã³ã³ããŒãã³ããäœæãããšãã«å®è£ ããŸãã 次ã«ããã®å Žåã®ngOnInitã®ããã«ãã©ã€ããµã€ã¯ã«ããã¯äžã«ã€ã³ã¹ã¿ã³ã¹ã䜿çšããŸãã ããªãã¯äžæ¥ã®çµãããŸã§DIã«ã€ããŠè©±ãããšãã§ããŸã-ããã¯ãã ã®éæ³ã§ãã
åå¿ãã
ã€ãªã€ïŒ Reactã®éæ³ãããã€ã玹ä»ããŸãã ã³ã³ããŒãã³ããã¹ãã¢ã«é¢é£ä»ããã«ã¯ãã³ã³ããŒãã³ããšæ¥ç¶æ©èœãReduxããååŸããæ¥ç¶ããã«ãŒã«ãæž¡ããŸãã 1ã€ã®ã«ãŒã«ã¯ReduxããªãŒããµãããªãŒã«åå²ããå°éå ·ã§ã³ã³ããŒãã³ãã«æž¡ãæ¹æ³ã«ã€ããŠèª¬æãã2çªç®ã®ã«ãŒã«ã¯ã¢ã¯ã·ã§ã³Reduxãã³ãŒã«ããã¯ã§ã©ããããŠã³ã³ããŒãã³ãã®å°éå ·ã«æž¡ãæ¹æ³ã«ã€ããŠèª¬æããŸããããã ãã§ãã
EugeneïŒãã¡ãããèš±ããŠãããŸãããAngularã®å Žåã¯éæ³ã®å Žåããã®ãšã¯ã¹ããŒãã®ããã©ã«ãæ¥ç¶ã¯ããçš®ã®é»éè¡ã§ãã
IlyaïŒãåç¥ã®ããã«ãJSã¯2幎ã§å°ãå€æŽãããçŸåšã§ã¯ããã©ã«ãã®ãšã¯ã¹ããŒããæ£åžžã«ãªã£ãŠããŸãã
ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³
EugeneïŒäžè¬çã«ãããã¯æãèå³æ·±ãéšåã§ãããŠãŒã¶ãŒãäœããè¡ããšããã¹ãŠãã©ã®ããã«ã¬ã³ããªã³ã°ãããã©ãã§å解ããããã§ãã
è§åºŠ
ãã®äžã«comments-widgetããã®äžã«å°ããªã³ã¡ã³ããã©ãŒã ã®ã¢ããªã±ãŒã·ã§ã³ããããŸãã ãããã¯ãã¹ãŠã³ã³ããŒãã³ãã§ãã ãŠãŒã¶ãŒãäžéšã³ã³ããŒãã³ãã®ã©ããã§éä¿¡ãã¯ãªãã¯ãããšã©ããªããŸããïŒ
ãã¹ãŠã®è§åºŠã®æ奜家ã¯ããŸãŒã³ã倧奜ãã§ãã ãŸãŒã³ã¯éåžžã«ããªãããŒãªãã®ã§ãå¥åŠãªããšã«ãããŒãããåºãŠããŸããã ãŸãŒã³ã¯ããã©ãŠã¶ã®ãã¹ãŠã®éåææ©èœïŒsetTimeoutãsetIntervalãããã³ã¯ãªãã¯ãªã©ã®ãã¹ãŠã®ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ïŒã«ã¢ã³ããŒããããå®è£ ããŸãã
äœããèµ·ãããšããŸãŒã³ã¯ç¹å®ã®ã³ãŒããã²ãã€ããŠåŒãåºããŸã-ãããChangeDetectionã§ãã ChangeDetectionã¯ããã¹ãŠã®ã³ã³ããŒãã³ãã®ã«ãŒãããå®è¡ãããäœããå€æŽãããããšãå€æãããã¹ãŠãã¬ã³ããªã³ã°ããŸãã ããšãã°ã5ã€ã®ã³ã¡ã³ããããã6çªç®ã®ã³ã¡ã³ããè¿œå ãããå Žåã5ã€ã®ã³ã¡ã³ããã¹ãŠããªãã€ã¬ã¯ããããŸãã ã§ããããéåžžã«é«éã§ãã
åå¿ãã
ã€ãªã€ïŒåãReactã¢ããªã±ãŒã·ã§ã³ãäœããŸãããã ããã£ãããã«ããã©ã¹ãŸãã¯ãã€ãã¹ã®ã¢ãŒããã¯ãã£ãæã€ã¢ããªã±ãŒã·ã§ã³ãäœæããããšã¯åé¡ã§ã¯ãããŸãããããã€ã³ãã¯è©³çŽ°ã«ãããŸãã
ãã©ãŒã ã®éä¿¡ã€ãã³ãããã£ããããäžèšã®ã³ã³ããŒãã³ãã«éç¥ããã¹ãã¢ã§ã¢ã¯ã·ã§ã³ãã¹ããŒããã¢ã¯ã·ã§ã³ãåŠçããŸãã ã¹ãã¢ã¯å€æŽãçºè¡ããŸãã å€æŽã®çºè¡ã¯ã¹ãã¢ã«é¢é£ä»ããããŠãããã¹ãŠã®ã³ã³ããŒãã³ãã«å±ããã³ã³ããŒãã³ãã¯ã¹ãã¢ããªãŒãžã®ãªã³ã¯ãå€æŽããããã©ããã«ã€ããŠãããã¯ã®å°éå ·ã®ãã§ãã¯ãéå§ããŸãã
ããããå€æŽãããå Žåãã³ã³ããŒãã³ãã¯åã¬ã³ããªã³ã°é¢æ°ãåŒã³åºããä»®æ³DOMãå®å šã«åã¬ã³ããªã³ã°ããŸãããã®åŸãä»®æ³DOMã¯ä»¥åã®ç¶æ ãçŸåšã®ç¶æ ãšæ°ããç¶æ ãšæ¯èŒããDOMããªãŒãç¹ããšã«å€æŽããŸãã
ãŠãŒãžã³ïŒåŸ ã£ãŠã ä»®æ³DOMããããååãšããŠãã¡ã¢ãªå ã«DOMããªãŒå šäœã®ã³ããŒã2ã€ããå¯èœæ§ããããŸãã
ã€ãªã€ïŒããã¯åé¡ã§ããïŒ
EugeneïŒã©ãããããã«ã®ã¬ãã€ãã®ã¡ã¢ãªããããšãããïŒ
ã€ãªã€ïŒ 2007幎ã®ã©ãããããïŒ ããããæ¬è³ªçã«ã¯ãå®éã®DOMã«ã¯éåžžã«äžå¿«ãªå¶éããããŸãã 5ã1äžåãè¶ ããDOMããŒããä¿æããããšã¯ã§ãããäžé©åã«åäœãå§ããé床ãäœäžããŸãã ãããã£ãŠãå€ãã®ä»®æ³DOMããŒããäœæããããšã¯ã§ããŸããã
EugeneïŒç¹ã«IEã§ã¯ã
ããŒã3.çã¿
éåžžãè°è«ã®åŸã«çãã
è§åºŠ
Angularã®çã¿ã¯äœã§ããïŒ ç§ã¯ããªãã«ãããäŒããŸããã§ããããããã¯å°ãé ãã§ãããããªããããã調çããæ¹æ³ãç¥ããªãå Žåã ãã§ãã
ããšãã°ãtextareaããããŸãã ã¯ã©ã¹ãã¶ãäžããããäœãã匷調ããããããªã©ãmousmoveã§äœãããããã 次ã«ãmousmoveã«ãµãã¹ã¯ã©ã€ãããŠå®è¡ããŸãã ãã¹ãŠãã·ã³ãã«ã§ãã
ChangeDetectionãçºçãããšãã³ã³ããŒãã³ããé žæ§ã®è²ã§è²ä»ãããŸããããã®ãããªãã®ã衚瀺ãããŸãã
éåžžãChangeDetectionã¯éåžžã«é«éã§ãããšèšãããŠããŸãã ããããå€ãã®DOMããŒããšã³ã³ããŒãã³ããããå Žåããã¹ãŠãé«éã§ã¯ãããŸããã
ããã¯éåžžã«ç°¡åã«ä¿®æ£ã§ããŸããAngularããŠãŒã¶ãŒã«è§Šããªãããã«ããŸãŒã³å€ã®mousmoveã«ãµã€ã³ã¢ããããŠãã ããã ãã®åŸãäœããå¿ èŠã«ãªã£ããããŸãŒã³ã«æ»ãããšãã§ããŸãã
ã€ãªã€ïŒãã¹ãŠãèªåçã«ã¯ãŒã«ã«åäœããããã«ãŸãŒã³ãäœæããŠããŸãããããŠããããåé¿ããããšããŸãïŒïŒ
ãŠãŒãžãŒã³ïŒããã ïŒ ç§ã¯ãAngularã¯æããªãã®ã§ã¯ãªããšèšã£ãã
Angular-4ã§ãªãå Žåãããã¯ãã¹ãŠçå®ã§ãã ã¿ããªè©ŠããŠã¿ããããã¹ãŠããŸããã£ãã äžè¬ã«ãAngularã¯ä»ãéåžžã«é«éã§çŸãããåªããæ©èœãçºæ®ããŸãã
åå¿ãã
ã€ãªã€ïŒ Reactã®çã¿ã«ã€ããŠå°ãã ãã€ãŠãç§ãReactã«æ²¡é ãå§ãããšããç§ã¯ä»ãåœå®¶ãéããŠæ©èœãããã¬ãŒã ã¯ãŒã¯äžã§ã¢ããªã±ãŒã·ã§ã³ãæžãããšã«æ±ºããŸããã ç°¡åããã§ããã ãããŠããDOMããŒãã«ã¯ã©ã·ãã¯ãé 眮ããããçš®ã®ã¢ãã¡ãŒã·ã§ã³ãäœæãããã®ã¯ã©ã·ãã¯ãåé€ããŸãïŒããšèããŸããããããReactã§ã¯ãã®ãããªããšã¯æ©èœããŸããã
Reactã§ã¢ããªã±ãŒã·ã§ã³ãäœæãããšããæåã®æ°ãæã¯æèãåæ§ç¯ããReactã§ã¢ããªã±ãŒã·ã§ã³ãäœæããããšãåŠã³ãŸã-ç¶æ ãå€æŽããå€æŽåŸã®ã¢ããªã±ãŒã·ã§ã³ã®å€åãç解ããŸãã ãããã«ãããReactã«å®å šã«æ²¡é ããŠãããã¹ãŠã®äººããããåŠã³ããããæ±ãæ¹æ³ãç解ããŠããŸãã
ãµã³ãã«ã¢ããªã±ãŒã·ã§ã³ã«ã¯ããããã®ãããããã¯ããããŸããã ãµãŒãããŒãã£ã®ã«ãŒããæ¿å ¥ããå¿ èŠãããå Žåã2ã€ã®ãªãã·ã§ã³ããããŸãã
è¯ãçµæã ããšãã°ã2GISã®äžéšã®äººã¯ãã©ã€ãã©ãªã«Reactã©ãããŒãäœæããŸããã ããã-DOMããªãŒãæ§ç¯ããç¹å®ã®ãµãŒãããŒãã£JSã¢ããªã±ãŒã·ã§ã³ã¯ãåçŽãªã³ã³ããŒãã³ãã«ãªããŸãã ããªãã¯ããã䜿çšããããã ãã§ãã
å¥ã®ãªãã·ã§ã³ ã ãã ããReactã§ä»¥åã«èª°ãæ¥ç¶ãŸãã¯æ¥ç¶ããªãã£ãJSã©ã€ãã©ãªãæ¥ç¶ãããããReactã³ã³ããŒãã³ãã§JSã©ã€ãã©ãªãã©ããããæ¹æ³ããªãŒãã³ãœãŒã¹ãœãªã¥ãŒã·ã§ã³ã«æçš¿ããªãã£ãããšããããŸãã ãããŠåéºãå§ãŸããŸãã
Reactã«ã¯å€ãã®ã©ã€ããµã€ã¯ã«ããã¯ãããããã®ãã¡ã®ããã€ãã¯äœ¿çšããå¿ èŠãããããšãããããŸãã æåã«componentDidMountã䜿çšããå¿ èŠããããReactã³ã³ããŒãã³ããã¬ã³ããªã³ã°ãããŠDOMã«æ¿å ¥ããããŸã§åŸ ã¡ãŸãã 次ã«ããã®ãµãŒãããŒãã£ã®JSã©ã€ãã©ãªãåæåããDOMããŒããã©ã€ãã©ãªã«æž¡ããšãããã«ææç©ããããã€ãããŸãã
componentWillReceivePropsã®ã©ã€ããµã€ã¯ã«ããã¯ãèŠããŠããå¿ èŠããããã³ã³ããŒãã³ãå ¥åã§å°éå ·ãæŽæ°ãããã³ã«ãæã§å·šå€§ãªããžãã¯ãèšè¿°ããå¿ èŠããããŸãã
ç§ã®äŸã§ã¯ãããã¯åçŽã§ããã巚倧ãªãããã¯ãã¹ããããšæãããŸãã
ã©ã€ããµã€ã¯ã«ããã¯shouldComponentUpdateãèŠããŠããå¿ èŠããããŸãã ããã§ã¯ãfalseãè¿ãããåå¿ãã¬ã³ããªã³ã°ã§gifãæäŸããŸããã空ãšèŠãªãããŸã£ããå ¥ããŸããããšèšããŸãã
ããäžã€
EugeneïŒããŒã«ã«ã€ããŠå°ã話ããŸãããã
è§åºŠ
ãã¡ãããAngularã¯ããããã¹ãŠåããŠããŸãã äœãå¿ èŠãããŸãããããããšãããããŸãã
- Angular-CLIã¯çŽ æŽãããããšã§ããçããã«äœ¿çšããããšããå§ãããŸãã
- è¿œå ã®ããŒã«ãå¿
èŠãªå Žåã¯ãAngularããã ãAngularã¢ããªã±ãŒã·ã§ã³ã®ãããã°ã«åœ¹ç«ã¡ãŸãã ã³ã³ããŒãã³ããã«ãŒãããã®ä»ãã¹ãŠã衚瀺ããŸãã ç§ãããããå§ãããŸãã
- Ngrevã¯ãæªåé«ãMinko Gachevã«ãããã®ã§ãéçã³ãŒãåæã䜿çšããŠãAngular-applicationsãéä¿¡ããã³ãã®ä»ãã¹ãŠã«åæããŸãã å€èŠ³ããå§ãããŸãã
åå¿ãã
ã€ãªã€ïŒ Reactã¯ãå°ãªããšãåªããDevToolsã§æãããŠããŸãã
React DevToolsããããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ãDOMããªãŒãšããŠã§ã¯ãªããReactã³ã³ããŒãã³ããšããŠæ瀺ããã®ã«åœ¹ç«ã¡ãŸãã ã©ã®ã³ã³ããŒãã³ããã©ã®ã³ã³ããŒãã³ãã«çµã¿èŸŒãŸããŠãããã確èªããŸãã ããšãã°ãReduxãäœæããããžãã¯ã©ãããŒã³ã³ããŒãã³ããããã³ã³ã³ããŒãã³ãã®å ¥åã«æ¥ããããããåç §ããŠãã ããã ã©ãã§äœãééã£ãŠããããç解ããã
å€ãã®äººãDevToolsãèŠããšãã«Reactã䜿ãå§ããããã§ãã ãããã®ããŒã«ã䜿çšãããšãæéå ã«ç§»åããŠç¶æ å€æŽã®å±¥æŽã確èªããã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ãæ°ã¹ãããåã«å·»ãæ»ãããšãã§ããŸãã
ãŠãŒãžãŒã³ïŒ 2007幎ã«æ»ããŸããïŒ
ã€ãªã€ïŒã¿ããéåžžã«é·ãéçããŠããã®ãªãããªãã§ããïŒ
ãŸãã䟿å©ãªæ©èœããããŸããæãè¿ãç¶æ ã®å·®åãå®å šãªç¶æ ããã¹ãçšã®mokiãçæããããã¹ãã¿ãã§ãã ã¢ããªã±ãŒã·ã§ã³ã®çŸåšã®ç¶æ ã«åºã¥ããŠmokaãååŸããç¶æ ã«è©°ã蟌ã¿ãäœãããã§ãã¯ãããã¹ããå®è¡ã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ãç®çã®ç¶æ ã«å€æããæé ãå®è¡ããå¿ èŠã¯ãããŸãããç¶æ ã¯åã«ã¢ããªã±ãŒã·ã§ã³ãäœæããã¢ããªã±ãŒã·ã§ã³ããã®ç¶æ ã«ãããšãã«ãã¹ãŠãæ£åžžãã©ããã確èªããŸãã
ããŒã4.çµãã
è°è«ã®åŸãçã¿ããããçã¿ã®åŸãããã¯çµããã§ãã Angular察Reactã®ããã«ã®äžéšãèŠçŽããŸãã
è§åºŠ
- æ§æ Angularã¯åªããæ確ãªæ§æã§ãã ããã¯HTMLã§ãããæ©èœããŸããå¥åŠãªJSXãèŠããå¿
èŠã¯ãããŸãããæãæ¬åŒ§ãªã©ãèŠããã ãã§ãã ç§ã¯ããã«ã€ããŠäœãæªãããšã¯èŠãŠããŸããã
- èšèªã JavaScriptã§ãTypeScriptã§ãDartã§ãFlowã§ãAngularã§äœã§ãæžãããšãã§ããŸãã
- åäžã®ã¡ã³ãããŒã Googleã«ã¯AngularããããAngularã«ã¯GoogleããããŸãããã¹ãŠã®ãã€ãã¹ãšãã©ã¹ããããŸãã ãã©ã¹ãã-AngularãæŽæ°ãããå ŽåãAngularã«å«ãŸããä»ã®ãã¹ãŠã®ããã±ãŒãžã¯ç¢ºå®ã«åäœããŸãããäžæ¹ã§ãGoogleã¯Googleã§ããããšã誰ããç¥ã£ãŠããŸãã
- ç®±å
¥ããœãªã¥ãŒã·ã§ã³ã CLIã€ã³ã¹ããŒã«ãè¡ããšãHTTPãªã¯ãšã¹ãããã¹ããªã©ãå¿
èŠãªãã®ããã¹ãŠæãããšã確信ã§ããŸãã ãããŠããã¹ãŠãç®±ããåºããŠããã«æ©èœããŸãã ååãšããŠãäœãã眮ãæããããšãã§ããŸãããã»ãšãã©ã®äººã¯ãã¹ãŠã®é·æãšçæã§æ¢è£œã䜿çšããŸãã
åå¿ãã
- æ§æ Reactã§ã¯ãããã¯ãã¡ããJSXã§ãã ããããJSXããªããŠãæžãããšãã§ããŸãããç§ã¯ããããã人ãèŠãããšã¯ãããŸããã ããªãã¯ããã«JSXã«æ
£ãããããã©ãã»ã©äŸ¿å©ããç解ããŸãã
- èšèªã Reactã®å ŽåãJSã¯äŸç¶ãšããŠæãäžè¬çãªèšèªã§ãã çŸåšãTypeScriptã«åããããããªåãããããDartãæžããªã¿ã¯ãããŸãããããã¯äž»æµã§ã¯ãããŸããã
- ã³ãã¥ãã㣠Reactã«ã¯Facebookããããããã¯Reactã®æ°ããããŒãžã§ã³ããªãªãŒã¹ãããŸã£ããåãReact Fiber補åãäœæããŸããããã¯ãåãã€ã³ã¿ãŒãã§ã€ã¹ãæã¡ãŸãããå
éšã¯ãŸã£ããç°ãªããŸãã ããããReactã«ã¯éåžžã«å€§ããªã³ãã¥ããã£ããããæ¢è£œã®ã³ã³ããŒãã³ãããã¢ããªã±ãŒã·ã§ã³ãã¢ã»ã³ãã«ããã©ããããã䜿ãæ
£ããã©ã€ãã©ãªãæ¥ç¶ããŠäœ¿çšã§ããå¯èœæ§ãéåžžã«é«ããªããŸãã
- ã³ã³ã¹ãã©ã¯ã¿ãŒ ã Reactã¯ãFluxã¢ãããŒãã®äœ¿çšãæšå¥šããåãªããã³ãã¬ãŒããšã³ãžã³ã§ãããã®åŸãèªåã§ããŒã¹å
šäœãããšã³ã·ã¹ãã å
šäœãåéããããåã«å¥œã¿ã®å®æããã¹ã¿ãŒã¿ãŒããã¯ãååŸããŠãå€ãã®äŸåé¢ä¿ããã©ãã°ããŸãã
äŒè°ã§ã¯ããŠãŒãžã³ãšã€ãªã€ãã¬ããŒãã®éäžã§Angular vs Reactã«æ祚ããŸããããæ®å¿µãªããããããã²ãŒã ã«åå ããŸããã ãããã£ãŠããã®èšäºã®èª¿æ»ã§ç¹°ãè¿ããŸãããã
ä»å¹ŽãRIT ++ãã§ã¹ãã£ãã«ã§éå±ããªãããšããçŽæããŸã-ããã³ããšã³ãã«é¢ããã¬ããŒãã®ããŒã«ã¯éåžžã«æ·±å»ã§ãã 以äžã«äŸã瀺ããŸãã
Andrey Solodovnikov ïŒN1.RUïŒã¯ã Vue.jsã倧èŠæš¡ãªWebã¢ããªã±ãŒã·ã§ã³ã®äœæã«é©ã ãŠãããã©ãããå€æãã Vue.jsã§ã®éçºãæ¬åœã«äŸ¿å©ã§ããçç±ãšããã©ãŒãã³ã¹ãã©ãã§ãããã説æããããšãçŽæããŸãã
Huntflowã®Vitaliy Glybinã¯ããã®ãã¬ã³ãã£ã§ã¢ãã³ãªãã¬ãŒã ã¯ãŒã¯ã®ãã¹ãŠããŒãããæžãçŽãã®ã«6ãæå¿ èŠãªçç±ãããžãã¹ã«ç°¡åã«èª¬æã§ãããšäž»åŒµããŠããŸããã ã§ã
倧èŠæš¡ã§è€éãªã¢ããªã±ãŒã·ã§ã³ãBackboneããVue ã«ç§»è¡ããå人çãªçµéš ãå ±æã ãããžãã¹ãæãªãããšãªã ïŒãããŠãã®éãïŒãããè¡ãããšãã§ããçç±ã«ã€ããŠè©±ããŸãã
ãŠãŒãªã»ãŠãŒãªã³ã¯ãSkyengãè°è«ãå®éšãã³ãŒãã«è²»ããã100æé以äžãç¯çŽããä»äººã®ééãããåŠãŒããšããŠããŸãã ã¬ããŒãã Angular 4/5ã§UIããããäœæããæè¡é¢ ãã¯ã å ±éã³ãŒããã©ã€ãã©ãªã«å ¥ããããã»ã¹ã«åœãŠãããŸã ã
Luxoft Mikhail Bashurovã®ã¬ããŒãã§ã¯ã ã€ãã³ãã«ãŒãã«ã€ããŠèª¬æããŸãã ã€ãã³ãã«ãŒããšã¯äœã§ãäœã䜿çšããã®ããæ€èšããŸãã J ava S criptã® éåææ§ã䜿çšããæ¹æ³ã«ã€ããŠè©±ããŸããããããã¯ãåæã«1ã€ã®ã¹ã¬ãããæã¡ã足å ã§èªåèªèº«ãæã¡ãŸããã
åèšã§ãçŽ60ã®ã¢ããªã±ãŒã·ã§ã³ã Frontend Confã«éä¿¡ãããŸããããéžæãããã®ã¯ååæªæºã§ãã ãã¥ãŒã¹ããã©ããŒãããšãæ£ç¢ºãªããã°ã©ã ãåŸ ããã«ãã±ãããäºçŽã§ããŸãã