ç§ã®ããŒã ãšç§ã¯reduxã®åŠç¿ã«å€ãã®æéãè²»ãããããã䜿çšããŠæ°ããã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ãéå§ããŸããã http://softwareengineeringdaily.com/2015/09/18/flux-redux-and-react-hot-loader-with-dan-abramov/ã«ãããœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ããããã£ã¹ãã§@gaearonãèŽããŠããŸããã 50åã®æç¹ã§ã @ gaearonã¯ããã¡ããã宣èšåããŒã¿ã®ãã§ããã¯æªæ¥ã§ãããreduxã¯å®£èšåããŒã¿ã®ãã§ãããæäŸããªããããreduxã¯éå»ã®ãã®ã§ãããšè¿°ã¹ãŠããŸãã
Reduxã§äœããæ§ç¯ããå¿ èŠããããŸããããããšãRelay / GraphQLã«ç§»è¡ããå¿ èŠããããŸããïŒ
å€ãã®äººãReduxã«ããªãæºè¶³ããŠããŸãã ããªãã¯åšãã«å°ããã¹ãã§ãâç§ã¯ãã®è³ªåã«çããè³æ ŒããããŸããã ã¢ããªãFacebookã®ããã«éåžžã«ããŒã¿éãå€ãå ŽåïŒè€éãªé¢ä¿ãæã€å€ãã®ãã¹ãããããšã³ãã£ãã£ïŒãGraphQLããã¯ãšã³ãã«æè³ããŠRelayãåŠã¶ããšããå§ãããŸãã ç§ã¯ããã«ã€ããŠè¯ãããšãèããã ãã§ãã
ãã¡ãããReduxã¯ããæ瀺çã§ããã宣èšåããŒã¿ã®ãã§ããã解決ããŸããã ReduxãšGraphQLã
Reduxã¯Relayãããã¯ããã«äœãã¬ãã«ã§ããããã¬ãŒã³ãªJSãªããžã§ã¯ãããã³é¢æ°ããéå»ãã§ããããããéå»ãã§ã¯ãããŸããã ãªã¬ãŒã¯ãã¬ãŒã ã¯ãŒã¯ã§ããããµããã£ãã§ãã¯ãè¡ããªãReduxã¯10åã®10ã©ã€ããŒé¢æ°ã§ãããããã¹ã³ãŒããç°ãªãããšã¯é©ãã¹ãããšã§ã¯ãããŸããã ããªãã«æé©ãªãã®ãéžãã§ãç§ãã¡ã«ç¥ãããŠãã ããã
GraphQLã®å®£èšåãã§ããã¯ãé©ãã¹ãäžæµã§ãã ãã ããRelayã«ã¯ãŸã äž»ã«HoC APIããããããèªäœã¯å®£èšåã§ã¯ãããŸããã Relayãã³ã³ããŒãã³ãããªãŒããåãé¢ãããããæè»ãªAPIãæäŸããå Žåãé©åãªReduxãã€ã³ãã£ã³ã°ãäœæã§ããŸããïŒ
2ã€ã®ç°ãªãåé¡ã解決ãã2çš®é¡ã®ã·ã¹ãã ã ãšæããŸãã
ãã®ãã±ããã¯ããã³ããŒã®æéãçµéãããã©ãããå°ãã倧工ã®ãããªãã®ã§ãã
ç§ã䞻匵ããgraphqlããŒã¹ã®ã·ã¹ãã ã¯ãå€ãã®ã¢ããªã«ãšã£ãŠéå°ã«èšèšããããœãªã¥ãŒã·ã§ã³ã§ããéã«ãè€éãªããŒã¿æ§é ãæã€ã¢ããªã¯ãreduxã䜿çšããŠæ§ç¯ãããå Žåãããããäžååã«èšèšãããŠããŸãã
ç§ã䞻匵ããgraphqlããŒã¹ã®ã·ã¹ãã ã¯ãå€ãã®ã¢ããªã«ãšã£ãŠéå°ã«èšèšããããœãªã¥ãŒã·ã§ã³ã§ããéã«ãè€éãªããŒã¿æ§é ãæã€ã¢ããªã¯ãreduxã䜿çšããŠæ§ç¯ãããå Žåãããããäžååã«èšèšãããŠããŸãã
ããã眮ãè¯ãæ¹æ³; ããã¯ç§ãããã«ã€ããŠã©ãæããŠãããã§ãã
@gaearonã¯reduxã§è¯ãä»äºãç¶ããŸãïŒ æé«ã®ããŒã«ã®1ã€ã§ãïŒ ç§ã¯ãããç§ã®äŒç€Ÿã®5ã€ã®å€§ããªã¢ããªãš2ã€ã®å°ããªã¢ããªã§äœ¿çšããŠããŠããããæããŠããŸãïŒ
@gaearonã¯reduxã§è¯ãä»äºãç¶ããŸãïŒ æé«ã®ããŒã«ã®1ã€ã§ãïŒ ç§ã¯ãããç§ã®äŒç€Ÿã®5ã€ã®å€§ããªã¢ããªãš2ã€ã®å°ããªã¢ããªã§äœ¿çšããŠããŠããããæããŠããŸãïŒ
ïŒ100ïŒ
ç§ã¯åœŒããåãã§ã¯ãªããšæããŸãïŒ
å€ãã®è€éãªã¢ããªã±ãŒã·ã§ã³ã«ã¯ã管çããå¿ èŠã®ãããµãŒããŒã«é¢ä¿ã®ãªãç¶æ ãå«ãŸããŠããŸãã ãªã¬ãŒã䜿çšããå Žåã¯ãæçµçã«ã¯èªåèªèº«ãreduxãå¿ èŠã«ãªããšæããŸãã å察ã«ããªã¬ãŒã¯éåžžã«çŽ æŽãããããŒã¹ãã®ããã«èŠããŸããããµãŒããŒé¢é£ã®ãã®ã ãã§ã
質åã¯ããªã¬ãŒããã©ãã¯ã¹ã«è§Šçºããããã¶ã€ã³ãã¿ãŒã³ãšã©ã®ããã«é¢é£ããŠãããã§ãã ãªã¬ãŒã¯ã©ãã§çµãããŸããããã€Reduxãå¿ èŠã§ããïŒ ãªã¬ãŒãã©ãã¯ã¹2.0ã§ããïŒ
Todoãªã¬ãŒã®äŸïŒreduxã¯å»æ¢ãããŸããïŒ
ãã¶ããGraphQLãšã®éã§èªåèªèº«ããããããæ¹æ³ãšã¿ã€ãã³ã°ãã¬ãã¥ãŒãµãŒã«äŒããæ¹æ³ã¯ãããŸããïŒ è€éã§ã¯ãªãããšãèšãã®ã§ã¯ãªãããããç解ããããã®æãç°¡åãªæ¹æ³ã¯äœã§ããã
ãªã¬ãŒãšã¯äœãã«ã€ããŠãã£ãšåŠã¶å¿ èŠããããŸãã 確ããªã®ã¯ãæ°çŸè¡ã®ã³ãŒãã§ã¯ãããŸããã
@oriSomethingããªãã¯å®å šã«æ£ãããããŸããã ãªã¬ãŒã¯å€ãã®ç¶æ 管çã解決ããŸãã
@gyzerokç§ã¯ã¯ã©ã€ã¢ã³ãåŽã®ã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ãæå³ããŸãã
@oriSomethingã¯ããã¯ã©ã€ã¢ã³ãåŽã®ã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã«ã€ããŠè©±ããŠããŸã
@gyzerokç§ã¯ãããéããã«éããªãã ããã«ã€ããŠã®ãªã³ã¯ãæããŠããã ããŸããïŒ
@oriSomethingãªã¬ãŒã¯æé»çã«ç®¡çãããããç¹å¥ãªãªã³ã¯ã¯ãããŸããã ãã¶ããããªãã¯FBããªã¬ãŒã«ã€ããŠè©±ããŠããã®ãèŠãããšãã§ããŸãã 圌ãã¯ãRelayããã£ãã·ã¥ã®åé¡ãã©ã®ããã«è§£æ±ºãããã«ã€ããŠè©±ããŸãã ã¯ã©ã€ã¢ã³ãåŽã®ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥=ç¶æ ã ã¯ã£ãããšãã話ãèŠããŠããŸãããããããªããã
@oriSomethingã¯ãéçºè ãæ瀺çãªç¶æ 管çãè¡ãå¿ èŠãããå¯äžã®å Žæã§ãã
@gyzerokããããŸããããã®å Žåããªã¬ãŒãè¡ããµãŒããŒã«é¢é£ããªãç¶æ 管çã¯ãããŸããïŒ ç§ãç解ããŠããéããããã§ã¯ãããŸãããïŒ
@oriSomethingæ£ããç解
@oriSomethingã¯ããããã§ã=> https://facebook.github.io/relay/img/Guides-Containers-HOC-Relay.png
ãã§ãã¯ïŒ https ïŒ
ã¯ã©ã€ã¢ã³ãã«ååãªããŒã¿ããªãå Žåã«ã®ã¿ãRelayã¯ãµãŒããŒã«è¿œå ããŒã¿ã®èŠæ±ãéä¿¡ããŸãã
Reduxã¯Relayãããã¯ããã«äœãã¬ãã«ã§ããããã¬ãŒã³ãªJSãªããžã§ã¯ãããã³é¢æ°ããéå»ãã§ããããããéå»ãã§ã¯ãããŸããã ãªã¬ãŒã¯ãã¬ãŒã ã¯ãŒã¯ã§ããããµããã£ãã§ãã¯ãè¡ããªãReduxã¯10åã®10ã©ã€ããŒé¢æ°ã§ãããããã¹ã³ãŒããç°ãªãããšã¯é©ãã¹ãããšã§ã¯ãããŸããã
ããã§ãç§ã¯æ¥œãã¿ã®ããã«slim-redux.jsãäœæããŸãããã³ã¡ã³ããéçºè ãžã®èŠåããµããã£ãã§ãã¯ã®ãªãReduxã®ããŒãžã§ã³ã§ãã ããã¯ããã¹ãŠã®éèŠãªReduxãã¹ãïŒãµããã£ãã§ãã¯ãã¹ããé€ãïŒã«åæ Œãã99è¡ã§ãïŒwink:ã ããã¯ãRelayãšReduxã倧ããç°ãªãã¹ã³ãŒããæã€ããŒã«ã§ãããšããç§ã®äž»åŒµãå°å°ããã¯ãã§ãã
@IwanKaramazowç§ã¯ååã«æ確ã§ã¯ãªãã£ããšæããŸããç§ãèšãããšããŠããã®ã¯ããã¹ãŠã®ããŒã¿ããµãŒããŒã«é¢ãããã®ã§ã¯ãªãã管çãããµãŒããŒã«é¢ä¿ã®ãªãããŒã¿ããããæ¬åœã«ãªã¬ãŒãšã¯æããªããã®ããŒã¿ã管çã§ããå Žåã§ãããããŒã«ãã«ç§»åããŸã
@oriSomethingäŸãæããŠããã ããŸããïŒ
@mattappersonã«å®å šã«åæã
ç§ã¯ãäŸãã°ãã¯ã©ã€ã¢ã³ãåŽã®ãã©ãŒã ã®ç¶æ ã«ã€ããŠåè°ã@oriSomethingèãã@IwanKaramazow
GraphQLã®ãããRedux =>ãªã¬ãŒãã移åããŸããã ç§ã®ã¢ããªã±ãŒã·ã§ã³ã®ã»ãšãã©ãã¹ãŠã®ãªãœãŒã¹ã¯éå±€çã§ããã ãããã¯åœç¶ããã¹ãããããšã³ãã£ãã£ã§ããããšãçã«ããªã£ãŠããŸãã ãããã®ã¢ãã«ã®ãã£ãã·ã¥ãReduxã«ä¿æããããšã¯çŽ æŽãããããšã§ããã ç§ã¯èªåã®ããŒã¿ãæ£ããèŠãŠããŠãçŽ æŽãããredux-devtoolsã§ãã°ããç¹°ãè¿ãããšãã§ããŸããã
ããããGraphQLããªããã°ããªã¢ãŒããªãœãŒã¹ãreduxããªãŒã«ãããã³ã°ããããã«æ°åã®ã©ãŠã³ãããªãããè¡ãå¿ èŠããããŸããã
æããã«ãããã¯RESTã®åé¡ã§ãããReduxã®åé¡ã§ã¯ãããŸããã 以åã«ããã€ãã®Redux-GraphQLãã€ã³ãã£ã³ã°ãèŠãŠãããããããããããã䜿çšããŠããã§ãããã ç§ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãRelayã®æ¡çšã¯ã»ãšãã©å€ãããŸããã§ããã 代ããã®@connect
ç§ã䜿çšããŠããŸãRelay.createContainer
ã ã©ã¡ãã®è£œåããAPIãç°ãªãã¢ãŒããã¯ãã£ã®åãããžã§ã³ãæã£ãŠããŸãã ç§ã¯ããã«ã€ããŠç°¡åãªæçš¿ãæžããŸããã
ç§ã¯çŸåšreduxãšrelay / graphqlã®äž¡æ¹ã䜿çšããŠãããrelayã¯ããŒã¿ã®ãã§ããã«åªããŠããŸãããåžžã«reduxã䜿çšããŠããããšãããããŸãã ç§ã¯çŸåš2ã€ã®çç±ã§reduxã䜿çšããŠããŸãããå°æ¥ããã«å€ãã®çç±ãèŠã€ããããšãã§ããŸã
1ïŒããŒã¿ããŒã¹ã«ååšããªãã³ã³ããŒãã³ãéã§å
±æããå¿
èŠããããã®ä»ã®ç¶æ
2ïŒãã©ãŒã ã®æºåã å®éã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®äžéšã«ãéä¿¡ãã¿ã³ã®ããããŒã«ããŒã³ã³ããŒãã³ããšããã¹ãŠã®å
¥åãã£ãŒã«ããä¿æããããã«ã³ã³ããŒãã³ãããããŸãã ãã©ãŒã ã«å
¥åãããšãreduxã«ä¿åãããŠããããã©ãŒã ã¬ãã¥ãŒãµãŒãã«å
¥åããããŠã³ã¹ããŠãéä¿¡ããåã«ããŒã«ããŒãããŒã¿ã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãã
ãŸããreduxdevtoolsã¯çŽ æŽãããã§ãã
ç·ããç·ã ç§ã¯ä»æ¥Relayãèªãã§ããŸãããã³ãŒããèªã¿ããããç解ãã«ããããšãèªããªããã°ãªããŸããã Reduxã®äŸãããã€ãèŠãŠãã³ãŒããèªãã ãã§ã³ã¢ã³ã³ã»ãããç解ããããšãã§ããŸããã
ãã¥ãŒããªã¢ã«ãTodoã®äŸã¯ããšã¬ã¬ã³ãã§ã¯ãªãããã§ãã ReactãšFLUXã¯ã·ã³ãã«ã§ããããšã«èªããæã£ãŠãããšæããŸãã çŸæç¹ã§ã¯ãRelayãããã®ãããªæèŠã¯åŸãããŠããŸããã
ãªã¬ãŒã¯Reactãšå¯æ¥ã«é¢ä¿ããŠãããã»ãšãã©ã®ã¢ããªã®è€éããæ¯èŒçéå°ã§ããããšãèãããšãç§ã¯æè¿Falcorã«ãã£ãšç±å¿ã«ãªã£ãŠããŸãã å®éãpromiseããŒã¹ã®ã€ã³ã¿ãŒãã§ãŒã¹ã®ãããReduxã§ã»ãšãã©ã®éåæåäœãè¡ãæ¹æ³ã«éåžžã«ããŸãé©åããŸãã ãŸããReactããåãé¢ãããŠãããããã¢ããªã®ã©ãã§ãç°¡åã«äœ¿çšã§ããŸãã ãŸãããµãŒããŒåŽã®ã¬ã³ããªã³ã°ã¯ãŸã å®å šã«ã¯çŒãä»ããããŠããŸãããããã¯ç§ã«ãšã£ãŠåå¿è ã§ã¯ãããŸããã
ãŸãããRelayLiteãã«äŒŒãreact-resolverãæ°ã«å ¥ã£ãŠã
@timdorrãã¹ãŠã®ç¶æ ãFalcorã«ä¿åããããšããŸãããïŒ ããšãã°ãã¬ãã¥ãŒãµãŒã«Falcorãªããžã§ã¯ãã䜿çšãããã
æªã ã«ã ç§ã¯ãŸã å®éšã¢ãŒãã«ããããããžã§ã¯ãã§æãã倧ããªéãæã£ãŠããã®ã§ããŸã ååãªæ³šæãæã£ãŠããŸããã
ç§ã¯Falcorã§éãã ããšãããã®ã§ãããã匷ããå§ãããŸãã å®éãç§ã¯çŸåšãReduxã¢ããªãšFalcorããã¯ãšã³ãã®çµ±åã«åãçµãã§ããŸãã Relayã®ã¯ãšãªéçŽã¯æäŸãããŸããããã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªã«éåžžã«é«åºŠãªãã£ãã·ã¥ã¬ã€ã€ãŒãããããªãŒããŒãã§ãããé²ããŸãã ããã§ååãããããªããšæããŸãããæéãçµãŠã°ããããŸãã
@gaearon宣èšåããŒã¿ãã§ããã䜿çšããŠ
äž»ãªéãã¯ãRelayïŒGraphQLã§ã¯ããŒã¿ãã§ããããã宣èšçã§ããããã«æããŸãïŒElmã¯URLãæå®ããããã«æ±ããŸãããæ»ã£ãŠããããŒã¿ã䞊ã¹æ¿ããã®ã¯ããªã次第ã§ãïŒããã®ä»ã¯ãã¹ãŠElmã§ãã宣èšçã§ãã ã
å®éãElmãšã³ã·ã¹ãã ã¯Relay / GraphQLã®ç§»æ€ã®æ©æµãåããããšãã§ããããã§ãã
ã¯ãšãªã®éèšã«é¢ããŠã¯ã Model.batchã¡ãœããããããŸãã ééïŒããªç§åäœïŒãŸãã¯ã¹ã±ãžã¥ãŒã©ãŒã®ãããããå¿ èŠã§ãããã¹ã±ãžã¥ãŒã©ãŒã«é¢ããããã¥ã¡ã³ãã¯ããŸããããŸããã
ç§ã«èããŠãæ§ããªãã®ãªããReduxãšFalcorãã©ã®ããã«çµ±åããŠããŸããïŒ ç§ã®ãã¹ãŠã®è©Šã¿ã¯ç§ãèç«ãããŸããã
ãŸããFalcorã®reduxã®äŸãèŠãããšæããŸãã ç§ã¯ãã¹ãŠã®Falorããã¥ã¡ã³ããèªã¿ãrelay / graphqlãããã¯ããã«ç°¡åã§ããããšã«åæããŸãã ããã»ã©åŒ·åã§ã¯ãããŸãããã
ReduxãšRelayã®é¢ä¿ãããã³ããããäžç·ã«äœ¿çšããããšãçã«ããªã£ãŠããã®ãã©ããçåã«æã£ãŠãã人ã¯ã https ïŒ ãã ããã
èŠç¹ã¯ãRelayãæçµçã«è€æ°ã®ãœãŒã¹ïŒããã¯ãšã³ããããŒã«ã«ãšãã§ã¡ã©ã«ããŒã¿ãªã©ïŒããã®ããŒã¿ãåŠçããããã䜿çšããŠããå¯èœæ§ã®ããä»ã®Fluxå®è£ ã眮ãæããããšã§ãã
https://github.com/facebook/relay/issues/168#issuecomment -135169255ïŒ
ãªã¬ãŒã¯Fluxãã¿ãŒã³ã®å®è£ ã§ããããšã«æ³šæããŠãã ããïŒFluxã¯ããèªäœã眮ãæããããšãã§ããŸããïŒ;-)ã
OpenGovã§ã¯ReduxãšRelayã®äž¡æ¹ãå€çšããŠããŸãã 確ãã«ãRelayã«ç§»è¡ããŠããã reducers/
ãã©ã«ããŒã¯ã¯ããã«å°ãããªããŸããã ãã ããReduxã¯ãã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®ããŒã«ã«ç¶æ
管çã«äŸç¶ãšããŠéåžžã«åœ¹ç«ã€ããšãããããŸããã ãããããã€ã®æ¥ãããªã¬ãŒã¯ãã®å°åã§ãããã«åã£ãŠä»£ããã§ãããã ãããã @ josephsavonaãäžåºŠèšã£ãããã«ããReduxã¢ãŒããã¯ãã£ãã¯æ¬åœã«ãã ...é¢æ°ã§ã:)ãã€ãã©ã€ãã©ãªããReduxã«ç§»è¡ãããšããŠããäžå€ã®ç¶æ
æŽæ°ããªã¢ã¯ãã£ãããŒã¿ãããŒãã¬ãã¥ãŒãµãŒã䜿ãç¶ããã§ããããè¿ãå°æ¥ã®æ©èœãªã©ã ããã¯ReduxIMOã®è²Žéãªéšåã§ãããå¿
ããããã®ãªããžããªã«ååšãã100è¡æªæºã®ã©ã€ãã©ãªã§ã¯ãããŸããã ïŒãã¡ãããã³ãã¥ããã£ãããã§ããïŒ
ã¢ããªãFacebookã®ããã«éåžžã«ããŒã¿éãå€ãå ŽåïŒè€éãªé¢ä¿ãæã€å€ãã®ãã¹ãããããšã³ãã£ãã£ïŒãGraphQLããã¯ãšã³ãã«æè³ããŠRelayãåŠã¶ããšããå§ãããŸãã
åæããŸããããGraphQL + Relayã¯ãé©åºŠãªãµã€ãºã®ã¢ããªãç¹ã«ãŒãããéå§ããæ°ãããããžã§ã¯ãã«ãšã£ãŠãåªããæè³ã§ãããšç§ã¯äž»åŒµããŸãã
ãªã¬ãŒã䜿çšããŠããªããããæ£ç¢ºã«ã¯é©åããŸããããMeteorã³ãã¥ããã£ããã®ãã®æèŠã®ãããã«ã¹ã¿ãã¯ã¢ãããŒãã«ã€ããŠã©ãæããŸããïŒ https://github.com/mattkrick/meatier
GraphQL / RelayãDatomic / Om.Nextã®ãããªæ·±ãã¢ãŒããã¯ãã£ã ãããªããžã§ã¯ã/ãªã¬ãŒã·ã§ãã«ã€ã³ããŒãã³ã¹ã®åé¡ã解決ã§ããŸã...ãããç§ã®èãã§ã-ãã£ãŒãããã¯ãããã ããã°å¹žãã§ãã
ãã®ãããã¯ïŒRelay / ReduxãGraphQLãããã³è€éãã®è»œæžïŒã«èå³ãæã£ãŠãã人ã¯ããããããããã§ããç§ã¯ãã¢ããªã®ç¶æ ã«å¯ŸããReduxã¢ãããŒãã§éåžžã«ããŸãæ©èœããã·ã³ãã«ã§æ©èœçãªGraphQLã¯ã©ã€ã¢ã³ãã®èšèšã«åãçµãã§ããŸãã
ãã®äžé£ã®èšèšååã«ã€ããŠäººã ãã©ãæããèå³ããããŸãïŒ https ïŒ
ããã«ç§ã®2ã»ã³ããè¿œå ããã ãã§ãïŒReduxã«çµããã¯ãªããšæããŸãã ã·ã³ãã«ã§çŸãããå€ãã®å Žåååã§ãã JSãšã³ã·ã¹ãã ã¯éåžžã«é«éã§ãç¶æããã®ãå°é£ã§ããReduxã¯ãäœããã®åœ¢ã§Reactãšåæ§ã«ããã°ããã®éä¿¡é Œã§ãããã€ã«ã¹ããŒã³ã§ãã ã¯ãŒã¯ãããŒãæ¯æé²åãããããšã¯ã§ããŸããïŒå°ãªããšããç§ã¯ã§ããŸããïŒãçŸåšãReduxã¯æ¬åœã«è¯ãéžæè¢ã ãšæããŸãã å€ãã®ãããžã§ã¯ãã§ã¯ããªã¬ãŒïŒããã³äžè¬çãªããŒã¿ãã§ããïŒã¯å¿ èŠãããŸããâŠ
@gaearonãã®æçš¿ãããŠããæ°ãæãçµã¡ãŸããããReactã«ã³ãã¡ã¬ã³ã¹ã§Reduxã«ã€ããŠè¬æŒããŸããã Relay /ãšæ¯èŒããŠãReduxãšã®GraphQLçµ±åããŸãã¯ãããã3ã€ãã¹ãŠã®çµã¿åããã«é¢ããŠãçŸåšã©ãã«ãããšæããŸããïŒ
@likeabbas GraphQLãšReduxã®çµ±åããæ¢ãã®å Žåã¯ãApolloã¯ã©ã€ã¢ã³ãããè©Šããã ããïŒ http ïŒ//docs.apollostack.com/apollo-client/index.html
ãŸã Relayãš100ïŒ ã®æ©èœåçæ§ã¯ãããŸããããè¿ã¥ããŠããŸãã
@likeabbasãã質åããšã³ãŒãã@gaearonïŒãã©ãã§ç§ãã¡ãåæ¥ãšGraphQLçµ±åã®é¢ã§ä»ãªã¬ãŒ/ããŸãã¯3ã€ãã¹ãŠã®ããããçµã¿åãããšæ¯èŒãããŠãããšæããŸããïŒã
ããã€ãã®ç°¡åãªèãã Reduxã¯ãååãªæ§é ãšååãªæè»æ§ã®ãã©ã³ã¹ãæäŸããæ±çšãã¬ãŒã ã¯ãŒã¯ã§ãã ãã®ãããéçºè ããŠãŒã¹ã±ãŒã¹ã«åãããŠã«ã¹ã¿ãã€ãºãããç¶æ 管çãæ§ç¯ããããã®ãã©ãããã©ãŒã ãæäŸãããšåæã«ãã°ã©ãã£ã«ã«ãããã¬ãŒãããã«ãŠã§ã¢ãªã©ãåå©çšã§ããŸãã ãã®ãŠãŒã¹ã±ãŒã¹ã¯ãªããªãå¯èœæ§ãäœãããã«æãããã®ã§ããReduxã®æ代ã¯éãå»ã£ãããšãããããããããããã£ãšèå³æ·±ã質åããããŸããGraphQLã¯ã©ã€ã¢ã³ããæ§ç¯ããŠããå ŽåãReduxäžã«æ§ç¯ããããšã¯çã«ããªã£ãŠããŸããïŒ
æ£è§£ã1ã€ãããã©ããã¯æããã§ã¯ãªããšç§ã¯çããŸãã Reduxã§ã®æ§ç¯ã¯çµ±åïŒå ±æããŒã«ãå ±æããŒã¿ïŒã®æ©æµãåããå¯èœæ§ããããŸãããã«ã¹ã¿ã ã¢ãããŒãã®æ§ç¯ã¯ããå€ãã®äœæ¥ã§ããããããã¡ã€ã³åºæã®ããŒã«ãå¯èœã«ããããã©ãŒãã³ã¹ãåäžãããå¯èœæ§ããããŸãã ãœãããŠã§ã¢éçºã®å€ãã®ãã®ãšåæ§ã«ãããã¯ãŠãŒã¹ã±ãŒã¹ã«äŸåããŸãïŒ
@josephsavona ïŒããã¯Reduxã®_çŽ æŽããã_èŠçŽã§ãïŒ ã©ããã®ããã¥ã¡ã³ãã®ããã«ãããçãå¿ èŠããããããããŸãã:)
ããããã®ã¹ã¬ããã®ã¿ã€ãã«ã¯æé©ã§ã¯ãªãã質åã¯ã¡ãã£ãšç²ãæãŠãŠããããã§ãã ãããããè°è«ãå¥ã®å Žæã«ç§»ãæãæ¥ãã®ã§ãããã
>.> lock the issue
ãããéããŸãã ãšã«ãã解決çããããã©ããããããªãã Reduxã¯äœäººãã®äººã ã®ããã«åããŸãããããŠããã¯ç§ã«ãšã£ãŠååã§ãã
ãã£ãšãééã£ããã¿ã³ã ç³ãèš³ãããŸããð
æãåèã«ãªãã³ã¡ã³ã
å€ãã®äººãReduxã«ããªãæºè¶³ããŠããŸãã ããªãã¯åšãã«å°ããã¹ãã§ãâç§ã¯ãã®è³ªåã«çããè³æ ŒããããŸããã ã¢ããªãFacebookã®ããã«éåžžã«ããŒã¿éãå€ãå ŽåïŒè€éãªé¢ä¿ãæã€å€ãã®ãã¹ãããããšã³ãã£ãã£ïŒãGraphQLããã¯ãšã³ãã«æè³ããŠRelayãåŠã¶ããšããå§ãããŸãã ç§ã¯ããã«ã€ããŠè¯ãããšãèããã ãã§ãã
ãã¡ãããReduxã¯ããæ瀺çã§ããã宣èšåããŒã¿ã®ãã§ããã解決ããŸããã ReduxãšGraphQLã
Reduxã¯Relayãããã¯ããã«äœãã¬ãã«ã§ããããã¬ãŒã³ãªJSãªããžã§ã¯ãããã³é¢æ°ããéå»ãã§ããããããéå»ãã§ã¯ãããŸããã ãªã¬ãŒã¯ãã¬ãŒã ã¯ãŒã¯ã§ããããµããã£ãã§ãã¯ãè¡ããªãReduxã¯10åã®10ã©ã€ããŒé¢æ°ã§ãããããã¹ã³ãŒããç°ãªãããšã¯é©ãã¹ãããšã§ã¯ãããŸããã ããªãã«æé©ãªãã®ãéžãã§ãç§ãã¡ã«ç¥ãããŠãã ããã