HolyJSäŒè°ãèŠè¶ããŠãMax StoiberïŒReact.js Vienna Meetupã®äž»å¬è ã®1人ãåå¿ãã€ã©ãŒãã¬ãŒãã®äœæè ã§ãããCarte Blancheã®äœæã«ãåå ããïŒãšSergey LapinïŒHolyJSããã°ã©ã å§å¡äŒã®ã¡ã³ããŒïŒãšè©±ããå·ç®¡çãœãªã¥ãŒã·ã§ã³ãéžæããæ¹æ³ã«ã€ããŠè©±ãåããŸããã
ReduxãMobXãRelayããŸãã¯å¥ã®Fluxå®è£ ïŒ å®è·µçãªæšå¥šäºé ãšãã¹ããã©ã¯ãã£ã¹ã
ããã¯ã¹ã»ã¹ãã¥ãŒããŒ
-ããã¯ã¹ãããã«ã¡ã¯ïŒ éå§ããã«ã¯ãç°¡åã«èªå·±çŽ¹ä»ãããèªå·±çŽ¹ä»ããŠãã ããã
-ããã«ã¡ã¯ïŒ ç§ã®ååã¯Max Stoiberã§ããç§ã¯Thinkmillã§åããŠãããªãŒãã³ãœãŒã¹éçºè ã§ãã KeystoneJSã®ãããªããããçš®é¡ã®ã¯ãŒã«ãªããšãè¡ããWebããã³ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãéçºãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäžã«è²¢ç®ããŸãã
-ãã£ãããã§ããïŒ ReactãçºèŠããŠããã©ã®ãããã®æéãããããã¹ãŠãè¡ã£ãŠããŸãããïŒãŸããã©ã®ãããžã§ã¯ãã«åå ããŸãããïŒ
-ããŒããç§ã¯Reactã§çŽ2.5幎éåããŠãããšæããŸãã ç§ãå§ãããšããFluxã¯äžçã§æãããããªãããã¯ãšèããããŠããŸããïŒ ãããããç§ãåå ããæãæåãªãããžã§ã¯ãã¯KeystoneJSãreact-boilerplateãsharingbuttons.ioã§ãã
FluxããReduxãž
-ä»ãèªè ã¯èª°ãèªåã®åã«ãããã®å°è±¡ãæã£ãŠãããšæããŸãã ãåç¥ã®ããã«ãä»æ¥ã®ã¡ã€ã³ãããã¯ã¯ãé·è·é¢ã§ã®Reduxã®ãªã¢ã¯ã·ã§ã³ïŒå€§ããªãããžã§ã¯ãã§å¿ èŠã§ããïŒãã§ãã Fluxã®æŠå¿µã«ã€ããŠèããŠããããšãšããããŸã§ã«è©Šããå®è£ ããå§ããŸãããã
-ãã©ãã¯ã¹ã倧奜ãïŒ ããŒã¿ã¹ããªãŒã ãäžæ¹åã«ããã®ã¯æ¥œããã¢ã€ãã¢ã ãšæããŸãã
ããã«ãããã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã§ã®äœæ¥ãéåžžã«ç°¡åã«ãªãã人çã楜ã«ãªãã以åã¯ããã§ãã£ããšã¯ä¿¡ããããªããªããŸãã Fluxã¯ããããããµã€ãºã®ã¢ããªã±ãŒã·ã§ã³ã«å®å šã«å¯Ÿå¿ããã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªéšåã®ããžãã¹ããžãã¯ã«åŸã£ãŠãç¶æ ã®äœæ¥ãçŽæçã«äžæã§ããŸãã ãããžã§ã¯ãã®äžéšããåå²ãããŠãããŒã ã¡ã³ããŒã«é åžããå¿ èŠãããå Žåããã®æŠå¿µãé倧è©äŸ¡ããããšã¯å°é£ã§ãã æåã¯ãªãªãžãã«ã®Fluxã䜿çšããŠããŸãããããªãªãŒã¹åŸããã«reduxã«åãæ¿ããŸããã
-äžè¬çãªãªãã¥ãŒã¹ã«ã€ããŠã©ãæããŸããïŒ å®åã³ãŒãã®æãæžãããšã«ã€ããŠã©ãæããŸããïŒ
-ç§ã¯ã©ãã§ãreduxã䜿çšãããããåŽæããŸãã ãŸããå®åçãªã³ãŒããæžãããšã«å šãå察ããŠããŸãããããã«ããã¹ãŠã®ããžãã¯ãæ瀺çã«èšè¿°ãããŠããããéæ³ããçºçããªãããšãæ¬åœã«å¥œãã§ãã Reduxã¯ãReactã¢ããªã±ãŒã·ã§ã³ã®éçºã«å¯Ÿããç§ã®ã¢ãããŒããå€ããŸããã çŸåšãå®è£ ããæ©èœã«å¿ããŠãã¡ã€ã«ãã°ã«ãŒãåããŠããŸãã äžéšã®æ©èœãå€æŽãŸãã¯è£è¶³ããå¿ èŠãããå Žåãé©åãªãã©ã«ããŒãæ€çŽ¢ããã ãã§ããããžã§ã¯ãå šäœãæ€çŽ¢ããå¿ èŠãªããç»åå šäœãäžåºŠã«èŠãããšãã§ããŸãã
åœå®¶ãšã®é£æºã«ã€ããŠããããŠå°æ¥ã«ã€ããŠ
ãå·ãšã©ã®ããã«é£æºããŠããŸããïŒã ããšãã°ãback-end'ovããéãããŠããããŒã¿ãæ£èŠåããMap'yã«Arrayããããã€ããŸãããImmutableã䜿çšããŸããïŒ
-ãããããªãã®ãµã€ãã¯éåžžã«æè¡çãªèŽè¡ãæã£ãŠããããã§ãã ã¯ããããªãã¯ãããæ£ããèšããŸããããããã¯çŸæç¹ã§ã®ãã¹ããã©ã¯ãã£ã¹ã§ãã ã»ã¬ã¯ã¿ãŒã®ã¿ãè¿œå ã§ããŸãã reselectã䜿çšããŠãã³ã³ããŒãã³ããç¶æ æ§é ããæœè±¡åãããããã«äŸ¿å©ãªåœ¢åŒã§ããŒã¿ãåä¿¡ã§ããããã«ããŸãã
-OKãReduxã§ã¯ãã¹ãŠãå€ããå°ãªããæ確ã§ãã ä»ã®2ã€ã®Fluxå®è£ ãMobXãšRelayã«ã€ããŠèª¬æããŸãããã ãŸããå°æ¥ã®å·ç®¡çã®æ±ºå®ã«ã€ããŠã©ãæããŸããïŒ
-ç§ã¯å€§èŠæš¡ãããžã§ã¯ãã§MobXã䜿çšããçµéšã¯ãããŸããããéåžžã«ææã«èŠããŸãããŸããreduxã®ä»£æ¿ãšããŠçå£ã«èããŠããããšããããããŸãã ãªã¬ãŒã«ã€ããŠèšãã°ãããã¯åªãããœãªã¥ãŒã·ã§ã³ã§ããã1ã€ã®å€§ããªæ¬ ç¹ããããŸããããã¯ãšã³ãã¯GraphQL圢åŒã§ããå¿ èŠããããŸãã æ£çŽãªãšãããæè¿ã®èª¿æ»ã§ã¯ãåœå®¶ãšååããããã®ãœãªã¥ãŒã·ã§ã³ã®åžå Žããã§ã«çºå±ããŠãããè¿ãå°æ¥ç¶æ³ã倧ããå€ããããšã¯ãªããšç§ã¯æããŠããããšã確èªããã ãã§ãã
éæ³ãå«ããªããreduxãããªãã®éžæã§ã
-ãããã«ã¡ã¯ãããã¯ã¹ïŒ æ°ãã倧èŠæš¡ãªãããžã§ã¯ããäœæããŸãããã©ã®ç¶æ 管çã©ã€ãã©ãªãéžæãã¹ããããããªãã
-ãã質åã§ãã ããã¯ãšã³ããGraphQLã«å¯Ÿå¿ããŠããå ŽåãããããããšãªãRelayïŒãŸãã¯Apollo ClientïŒã䜿çšã§ããŸãã MobXãšreduxã䜿çšãããšãéžæãå°ãé£ãããªããŸãã ããªããå®éšãããããããŒã å šäœãæ°ãããœãªã¥ãŒã·ã§ã³ãåŠã¶ããã«å°ãæéãè²»ããããšãããšããªããªããMobXã®éžæã¯æ£åœã§ããããã«æããŸããå°ãªããšãç§ã¯æè¿ããã«ã€ããŠå€ãã®è¯ãããšãèããŸããã ãéæ³ããæ°ã«å ¥ããªãå Žåãæéã足ããªãå ŽåããŸãã¯æ¬çªç°å¢ã§ãããžã§ã¯ãããã°ããèµ·åãããå Žåã¯ãreduxãéžæããŸãã
ãããŠãã¢ããã€ã¹ããããšãïŒã HolyJSã«ã³ãã¡ã¬ã³ã¹ã§éããªãã¢ã¹ã¯ã¯ã«æ¥ãããšãç¥ã£ãŠããŸãã äœã«ã€ããŠè©±ãã€ããã§ããïŒ
- ãªãã©ã€ã³ã«ã€ããŠã話ããŸãã ãã®ãã¯ãããžãŒã䜿çšãããšãWebã¢ããªã±ãŒã·ã§ã³ããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã«è¿ã¥ããããšãã§ããŸãã èŠããã«ãServiceWorkersã䜿çšãããšãéçºè ã¯èªåã®ã¢ããªã±ãŒã·ã§ã³ãäœããã¹ããã貧匱ãªã€ã³ã¿ãŒããããŸãã¯ãã®äžåšãå€æã§ããŸãã ããã¯éåžžã«æ°ããæè¡ã§ããããã確ç«ããããœãªã¥ãŒã·ã§ã³ã¯ãŸã ãããŸããããsw-precacheãsw-toolboxãwebpack offline-pluginã¯ææã«èŠããŸãã
-ããã¯ã¹ããæéãããããšãïŒ äŒè°ã§äŒããŸãããïŒ
-èå³æ·±ã質åãããããšããã¢ã¹ã¯ã¯ã§ãäŒãããŸãããã
@YuryDymovã«ããã€ã³ã¿ãã¥ãŒ
ã»ã«ã²ã€ã»ã©ãã³
-ããã«ã¡ã¯ãã»ã«ã²ã€ã èªå·±çŽ¹ä»ãããŠãèªè ã«äœãããŠããã®ãæããŠãã ããã
-ããã«ã¡ã¯ïŒ ç§ã®ååã¯ã»ã«ã²ã€ã»ã©ãã³ã§ãã ç§ã¯ããªãŒã©ã³ãµãŒã§ããReactJSã®ã¿ã§ãããžã§ã¯ããè¡ããäž»ã«Reduxã䜿çšããŠããŸãã ä»ãç§ã¯ããã§3çªç®ã®ãããžã§ã¯ããããŠããŸãã çµã¿åãããŠã HolyJSãšSPBããã³ããšã³ãã®äž»å¬è ã®1人ã
Flux-Reduxãéžã¶çç±
-ãªãFluxãšReduxã§ããïŒ ã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã®äœæã«ãã®ã¢ãããŒããéžæããçç±ã¯äœã§ããïŒ
-ãã®ã¢ãããŒããé©ããŠããäž»ãªçç±ã¯ãåæ¹åã®ããŒã¿ã¹ããªãŒã ã§ãã ãã®ã¢ãããŒãã«ããã·ã¹ãã ã®ç¶æ ã¯ããããã®ã¢ã¯ã·ã§ã³ã®ã·ãŒã±ã³ã¹ã«ãã£ãŠæ±ºå®ãããŸãã çè«çã«ã¯ãããã¯ãFluxã«ãã®ã·ãŒã±ã³ã¹ãäžãããšãåºåã§ã·ã¹ãã ã®æãŸããç¶æ ãååŸããããšãæå³ããŸãã ããããæãéèŠãªããšã¯ããããã®ã¢ã¯ã·ã§ã³ãã³ã³ãœãŒã«ã«è¡šç€ºããã ãã§ãäœãèµ·ãã£ãŠããã®ããç°¡åã«ç解ã§ããããšã§ãã ããã¯ãããã°ã«å€§ããªåœ±é¿ãåãŒããŸãã
ç¹å®ã®ã¡ãœããããã«ããããšã§æé»çã«ã¢ãã«ãå€æŽãããããåŸæ¥ã®MVC / MVVPããã³ä»ã®ã·ã¹ãã ã§ã¯ãã®ã€ãã³ããã°ãååŸã§ããŸããã ã¢ãã«ã¯ä»ã®ã¢ãã«ã«ã圱é¿ãäžããå¯èœæ§ããããŸãããããã¯ãã¹ãŠUIã®å€æŽã®ã«ã¹ã±ãŒããåŒãèµ·ãããäŸåãããã®ãç解ããŠç¶æããããšãéåžžã«å°é£ã«ãªããŸãã ãããã£ãŠãç¶æ ãå€æŽããå Žåã¯ãç§ãã¡ã¯èªåã®æãæã¡ãŸãã ããŠã芪åã«ãã¢ã¯ã·ã§ã³ãäœæããã·ã¹ãã å ã§å¯äžã®Dispatcherãä»ããŠãããæž¡ããŸãã
Reduxã¯ãäžé£ã®ã¢ã¯ã·ã§ã³ã«ãã£ãŠå€æŽãããåæç¶æ ãšããŠã¢ããªã±ãŒã·ã§ã³ãèããããšãææ¡ããŠããŸãã
ReduxãåªããŠããçç±
-ãããã ãããããã®åŸãReduxã¯ä»ã®Fluxããã³Stateã³ã³ãããããåªããŠããŸããïŒ
ãReduxã¯Fluxã§ã¯ãªãããšãç解ããããšãéèŠã§ããã äž»ãªéãã¯ãReduxã«ã¯DispatcherãšStoreãæ瀺çã«ãªãããšã§ãã ããŒã«ãã¯1ã€ã®å€§ããªããŒã«ãã«çµ±åãããŸããã Reduxã«ã¯ãã¢ã¯ã·ã§ã³ããã£ã¹ãããããïŒã€ãã³ããäœæããïŒæ©èœããããŸãã ç¬ç«ãããšã³ãã£ãã£ã¯ã»ãšãã©ãããŸããã ããããæãéèŠãªããšã¯ãåæ¹åã®ããŒã¿ã¹ããªãŒã ãæ®ãããšã§ãã
Reduxã®éèŠãªã¢ã€ãã¢ã®1ã€ã¯ãReducerã§ãã ç¶æ ãšçŽæ¥å¯Ÿè©±ãããã®ã¯ãããŸããã 代ããã«ãåããŒã¹ãã³ããŒããããã¹ãŠã®ããŒã¹ãæ°ããç¶æ ãªããžã§ã¯ãã«çµåãããŸãã ã¬ãã¥ãŒãµãŒã¯ãã³ããŒãã«ãŒãã¬ãã¥ãŒãµãŒã«è»¢éããŸããã«ãŒãã¬ãã¥ãŒãµãŒã¯ãã³ããŒããæ¥çãããŠãæŽæ°ãããç¶æ ãªããžã§ã¯ãã圢æããŸãã 次ã«ãã¡ã€ã³ã¬ãã¥ãŒãµãŒã¯ããã®ããã«ããŠååŸããç¶æ ãªããžã§ã¯ãããªããžããªã«æ»ãããªããžããªã¯ãããæ°ãããå ¬åŒãç¶æ ã«ããŸãã
å°èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã®å Žåãç¶æ ãªããžã§ã¯ããšãã®å€æŽã®ã³ããŒãäœæããã¬ãã¥ãŒãµãŒã¯1ã€ãã䜿çšã§ããŸããã ã¢ããªã±ãŒã·ã§ã³ã倧ããå Žåãã¬ãã¥ãŒãµãŒã®ããªãŒå šäœãå¿ èŠã«ãªãå ŽåããããŸãã ããã¯ãFluxãšReduxã®ãã1ã€ã®éãã§ãã ãã©ãã¯ã¹ã¹ãã¢ã¯å¿ ãããçžäºã«æ¥ç¶ãããŠããããã§ã¯ãªãããã©ãããªæ§é ã«ãªã£ãŠããŸãã Reduxã¬ãã¥ãŒãµãŒã¯éå±€å ã«ãããå¿ èŠãªæ°ã®ã¬ãã«ãæã€ããšãã§ããŸãã
ReduxãšFluxã®éãã¯ããã ãã§ã¯ãããŸããã Reduxã®äœæè ã§ããDanil Abramovã¯ãFluxã®æ¹åãæãã§ããŸããããåæã«ãã®ã¢ãŒããã¯ãã£ãæäŸããäºæž¬å¯èœæ§ãç¶æããŠããŸãã 圌ã¯ããããã£ãã
-ãªãä»ã®FluxãMobXã®å®è£ ã§ã¯ãªãReduxã奜ãã®ã§ããïŒ
Reduxã¯ãã§ã«éåžžã«äººæ°ããããäž»æµãšèšãããããããŸãããåªããããã¥ã¡ã³ããšå·šå€§ãªãšã³ã·ã¹ãã ãåããŠããŸãã ããã¯ããæå³ãLEGOã®ã³ã³ã¹ãã©ã¯ã¿ãŒã§ãã Reduxã«ã¯ãããã«ãŠã§ã¢ããšã³ãã³ãµãŒãHighOrderReducersãªã©ãæ¡åŒµãã¹ãå€ãã®ãã€ã³ãããããŸãã
ããšãã°ãããã«ãŠã§ã¢ã npmããéåžžã®Reduxã䜿çšããå ŽåãããŒã¿ã䜿çšããéåæäœæ¥ã®è§£æ±ºçã¯ãããŸããã 圌ã«ã¢ã¯ã·ã§ã³ãäžããæ°ããç¶æ ãšUIãååŸããŸãã1ã€ã®ããã§ãã¯ãã®ããã«ãã¹ãŠãåæããŸãã ããããããã¯çŸå®ã®äžçã§ã¯çºçããŸããããªã³ã©ã€ã³ã«ã¢ã¯ã»ã¹ããããŒã¿ããŒã¹ããäœããååŸããå¿ èŠããããŸããããã«ãããããã«éåæãçºçããå¯èœæ§ããããŸãã ããžãã¹ããžãã¯ã¯ãåºæ¬çã«ãã®ãããªéåæã§æ§æãããŸãã ããã§ããã«ãŠã§ã¢ã¯éæ³ããããã³ã¢ã§ã®ããã«ååçã«äžå¯Ÿäžã§åäœããŸãã
éåæã§äœæ¥ããããã®å€ãã®ã³ãã¥ããã£ãœãªã¥ãŒã·ã§ã³ããããŸãã
- https://github.com/yelouafi/redux-saga
- https://github.com/clarus/redux-ship
- https://github.com/gaearon/redux-thunk
- https://github.com/acdlite/redux-promise
çŽæãéããã-ããã«ãŠã§ã¢ã ããã«ãŠã§ã¢-äœãã®ããŒãã«æéããããå Žåãã¢ããªã±ãŒã·ã§ã³ã®ã©ãã§ãããŒã®é²è¡ç¶æ³ã衚瀺ãããã äŸå€ãé€ããã¢ã¯ã·ã§ã³ãã°ã䜿çšããŠãŠãŒã¶ãŒãããšã©ãŒãéä¿¡ããŸã-ããããŸããã
EnhancersãšHighOrderReducersã䜿çšããåæ§ã®ã¹ããŒãªãŒ-äžå€®ãªããžããªã«ã¯å€ãã®å¶åŸ¡ãªãã·ã§ã³ããããŸãã
Reduxã®çµéš
-ããªãã¯ãã§ã«Reduxã§å€ãã®çµéšãæã£ãŠããŸãã 圌ã«ã¯ã©ããªåé¡ãå¶éããããŸããïŒ ãããžã§ã¯ãéçºã®éçšã§ã©ã®ãããªå°é£ã«ééããŸãããïŒ
-ããšãã°ããã¬ãŒãã³ã°ã³ãŒã¹ã®ãã©ãããã©ãŒã ã§ãããããžã§ã¯ãããããŸããã ããã¯ãç»åãã°ã©ããã°ã©ããªã©ãæäœããããã®ãŠã£ãžã§ãããå€æ°ããReactã¢ããªã±ãŒã·ã§ã³ã§ããæ¬è³ªçã«ããããã¯ããã¢ããªã±ãŒã·ã§ã³ã§ããããããããç¬èªã®ããžãã¯ãç¬èªã®ãªãªãŒã¹ãµã€ã¯ã«ããããŠæãéèŠãªããšã«ã¯ç¬èªã®ç¶æ ãåããŠããŸããç¹ã«èå³æ·±ãã
éåžžãReduxããã³Reactã«ã¯ããã©ãŒãã³ã¹ã®åé¡ã¯ãããŸããããã³ã³ããŒãã³ãã®ãã¹ãã倧ããå Žåãäžå€®ãªããžããªãä»ããŠãã¹ãŠã®å€æŽãã¹ããŒãããšãé 延ãæãå§ããŸãã ãã®çµæããããã®ç¶æ ãReduxãšããªãæ éã«åæãããå¿ èŠããããŸããã Reduxå ã§ã®Reduxã®æ¥œããå®éšã§ããã
ãã®ãããªã³ã³ã»ããããããŸã-ã³ã³ãããšãã¬ãŒã³ããŒã·ã§ã³ã³ã³ããŒãã³ãã ããªãé·ãéãç§ã¯äžéç¶æ ãæªã ãšæã£ãŠããŸããã ã³ã³ããŒãã³ãã¯ã§ããã ããããã«ä¿ã¡ãReduxã«ä¿åããå¿ èŠããããŸãã ä»ã¯ããã¯æããŸãã
ããšãã°ããã©ãŒã ã®å€æŽãäžéšã«éä¿¡ããå¿ èŠãããã®ã¯ãªãã§ããïŒ ãã®ãããªé°å²æ°ã ããæž©ãã...äžéç¶æ ãå¿ èŠã§ãã ç§ã¯ã¯ã©ã¹ã®å€§ãã¡ã³ã§ã¯ãªãã®ã§ã recomposeã䜿çšããŠãã¹ããŒããã«ã³ã³ããŒãã³ãã§ã¹ããŒãã¬ã¹ãã©ããããŸãã ããã«ãããæ¢åã®ã³ãŒããã¯ã©ã¹ã«æžãæããå¿ èŠããªããªããŸãã
-æ°ããéçºè ã¯Reduxã§ããééããç¯ããŸããïŒ
-æžéæ©ã¯åžžã«æ°ãããªããžã§ã¯ããäœæããå¿ èŠãããããšã人ã ã¯å¿ããŠããŸãã ã¹ãã¬ãããæ·±ãããŒãžãè¡ããªãããšãå¿ããäžè¬çãªééãïŒ
const newNested = {...oldState.nested, ...newState.nested }; const finalState = { ...oldState, nested: newNested };
ãŸããå€ãã®ããžãã¯ãã³ã³ããã«çž«ãä»ããããããšããããããŸãã Action Creatorsã«é 眮ããããšããå§ãããŸããäœæãç°¡åã«ãªããReduxããçŸåšã®ç¶æ ãååŸã§ããŸãã
ããã«è¯ãããšã«ãç¶æ ãæ£èŠåããŸã ã
-Reduxã§éçºããããã®ãã¹ããã©ã¯ãã£ã¹ã®ãã³ãã¯ãããŸããïŒ
-ãŸã第äžã«ãä»äººã®ãããžã§ã¯ããç²ç®çã«ã³ããŒããªãã§ãã ããã å®åæã䜿çšããŠåé¡ã解決ã§ããŸãããå®éã«äœãããããææ¡ããå¿ èŠããããŸãã äžèŠãªãã®ãæšãŠãæ®ãããã®ãã©ã®ããã«æ©èœããããç解ããŸãã
Reduxã¯åé·ã§ããããã2ã3è¡ã®ã³ãŒããä¿åããã©ããã§äœããåãåºãèªæããããŸãã ããã«ãããªãã»ãããã ãŸãããããããªãŒãã³ãœãŒã¹ã®ãœãªã¥ãŒã·ã§ã³ããããŸããèªè»¢è»ãäœæããããããããã䜿çšããæ¹ãè¯ãã§ãããã 第äºã«ãæãé »ç¹ã«ç¹°ãè¿ããããã¿ãŒã³ã¯æéã®çµéãšãšãã«ãã¬ãŒã¹ãããŸããããã¯ããªãã¡ã¯ã¿ãªã³ã°ã®äž»ãªåè£ãç¹å®ããããã®è¯ãæ¹æ³ã§ãã
æéãçµã€ã«ã€ããŠãç¹å®ã®ã¢ãããŒããè¶ ããããã«ãŠã§ã¢ãã¹ããŒããä»ã®ããã«ãŠã§ã¢ã䜿çšã§ããŸãã 1幎åŸãåãReduxã«ãªããŸããããããžã§ã¯ããèªèã§ããªãå ŽåããããŸãã ç§ã«ãšã£ãŠã¯ããããæãã¯ãŒã«ãªããšã§ãããããžã§ã¯ãã®èŠä»¶ã«é©å¿ããèœåã§ãã
ããªãžã¹
-æåŸã«ãHolyJSäŒè°ã«ã€ããŠæããŠãã ããã ããã§äœãããŠããŸããïŒ
-ç§ã¯ããã°ã©ã å§å¡äŒã«æå±ããŠãããäŒè°ã®ã¬ããŒããéžæããŠèããŠããŸããç§èªèº«ã¯è©±ãããŸããã
-çããŠãããŠããããšãïŒ
ã€ã³ã¿ãã¥ãŒãããã¬ãã·ã§ãŒã
ãŸãã HolyJSäŒè°ïŒ ç»é² ïŒäžã«ã次ã®ã¬ããŒããèãããšãã§ããŸãã
- ECMAScriptïŒææ°ããã³ä»åŸã®æ©èœ
- ã€ã³ã¿ã©ã¯ãã£ããªnpmã³ãã³ãã©ã€ã³ã¢ãžã¥ãŒã«ã®æ§ç¯
- çœé³¥ã®ã¬ã³ãšãã€ã¯ïŒãã¯ãããžãŒãã©ã®ããã«ããã³ããšã³ããäžã«åŒãå¯ããã
- 3L3M3NT5
- ææ°ã®Webã¢ããªã±ãŒã·ã§ã³ãžã®ã¢ãããŒãæ¹æ³
- å®çšŒåç°å¢ã§ã®Node.jsããã©ãŒãã³ã¹ã®åé¡ã®ãããã°
- WebVRã¯æ¬¡ã®ããã³ãã£ã¢ã§ã
- ãšã«ã ãšããã³ããšã³ãã®è³çŠã«å°ãè¿ã¥ã
- V8ã®ããã©ãŒãã³ã¹ãããã¡ã€ãªã³ã°
- DIYïŒéçºïŒããŒã«
- Draft.jsã䜿çšãããªããããã¹ãç·šé
- JavaScriptã䜿çšããP2På ±æãã©ã«ããŒã䜿çšããŠãã¡ã€ã«ãããŒã¿ãåéãšå ±æãã