You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
React.memoãé©ç¨ããã°ãã³ã³ãã¼ãã³ãã®ä¸è¦ãª ReRender ãé²ããã¨ãã§ãã¾ããããããªãããProvider è¨è¨ã»ãã±ããªã¬ã¼ã®è¦ç´ããè¡ããã¨ã§ãReact.memoã使ããã¨ããReRender ã®ææ¢ã¯å¯è½ã§ãã æé©ãª Context Provider è¨è¨ã¨ãããã¨ã§ãReact.memo使ç¨ã«ãããªã¼ãã¼ããã忏ãæå¾ ã§ãã¾ããããã¦ãéå°ãª Provider åå²ãå ´åã«ãã£ã¦ã¯ä¸è¦ãã¨ãããã¨ã解説ãã¦ããã¾ãã 3ã¤ã®ãã¿ã¼ã³ ãµã³ãã«ãªãã¸ããªãç¨æãã¾ãããï¼Next.jsã§ä½ã£ã¦ãã¾ãããç¹ã«æå³ã¯ããã¾ããï¼ã+1ãæ¼ä¸ã§ã«ã¦ã³ãã¢ããããinput textãå ¥åã§ãå ¥åå å®¹ãæ´æ°ãããç°¡åãªãµã³ãã«ã§ãã ãã¡ãã§ã¯ã以ä¸ï¼ã¤ã®ãã¿ã¼ã³ãç¨æããã¦ãã¾ããReRender ããã¦ããæ§å㯠console.log åºåã®ã»ããReact
Next.js ã¨ããã°ãSSGï¼JAMstackï¼ãæè¿ã¯ç¹ã«è©±é¡ã§ããã1å¹´åã¾ã§ã¯getInitialPropsãç¨ãã¦ãã©ã SSR ããã®ãã¨ããäºã話é¡ã®ä¸å¿ã§ãããNext.js 9.3 以éãSSR ãããéã«ã¯getInitialPropsã§ã¯ãªãgetServerSidePropsã使ç¨ãããã¨ãæ¨å¥¨ããã¨è¨è¼ããã¦ãã¾ããï¼ããã¦ãgetInitialPropsã使ç¨ãããã¨ã§èªåæé©åãç¡å¹ã¨ãªã£ã¦ãã¾ãæ¨ãï¼getStaticPropsãgetServerSidePropsãå©ç¨ãããã¨ã§ãç§ãã¡ã¯ SSGã»SSR ããã¼ã¸åä½ã§åãæ¿ãããã¨ãã§ãã¾ãã ãSSGã»SSRããå ±åããå¯è½æ§ãããå ´åãSSR ã«ã¯getServerSidePropsãå©ç¨ãããã¨ã«ãªãã¾ãããã®å¤åã«ããå½±é¿ç¯å²ã¯å¤å¤§ã§ãç¶æ 管çã¨ãã¼ã¿ãã§ããã«ã¤ãã¦ãåèããå¿ è¦ãã§ã¦ãã¾ã
ã¦ã©ã¼ã¿ã¼ã»ã«æ ªå¼ä¼ç¤¾ã®ç¤¾å åå¼·ä¼ https://water-cell.connpass.com/event/178648/ ã§çºè¡¨ãããã®ã§ãã YouTube Liveã¢ã¼ã«ã¤ãã¯ãã¡ã https://youtu.be/ZLUie-ndKgw
TypeScriptã§Reactãããã¨ãã¯ãå°ããã¢ããªã§ãReduxãæåãã使ã£ã¦ããããããã¨ããã話 忥ã®ä¸¸éãããReduxãåããããã解説ãã¦ã¿ãã¨ããReduxã®åºæ¬çãªç´¹ä»ãè¡ãã¾ãããReduxã¯ã³ã³ãã¯ããªã©ã¤ãã©ãªãªããããèããããä»çµã¿ã§ããJetpack ComposeããFlutterãããReactã¤ã³ã¹ãã¤ã¢ãªGUIãã¬ã¼ã ã¯ã¼ã¯ãå¢ãã¦ããã®ã§ãJavaScriptï¼TypeScriptã§ã¯ãªãï¼ + Reduxããã£ã¦ã¿ãã®ã¯ãã¦ã§ãã«éãããä»å¾ã®ã¦ã¼ã¶ã¼ã¤ã³ã¿ãã§ã¼ã¹é¢é£ã®ã³ã¼ãã触ãããã®çè§£ååä¸ã«ã¯è¯ãã¨æãã¾ãã æ¬ã¨ã³ããªã¼ã¯ããããã¯ã·ã§ã³ã³ã¼ãã§ããããReduxå¨ãã«ãreducerãªã©ãå®è£ ããªãã¦ã¯ãããªããªã£ãã¨ãã®æ¬¡ã®ã¹ãããã¨ãã¦ãRedux Toolkitã®ç´¹ä»ããã¾ãã ããã¦ããReduxã¯å°å ¥ã³ã¹ãã大ããã
æè¿ã§ã¯ReactãVueã使ã£ããªããã§ã¤ã³ã¿ã¼ã©ã¯ãã£ããªUIãã©ãã©ã主æµã«ãªã£ã¦ãã¦ãã¾ããã2020年以éããã®æµãã¯å éãç¶ããã§ãããã SPAï¼Single Page Applicationï¼ãPWAï¼Progressive Web Applicationï¼ã®æ®åã«ãã£ã¦ä»ã¾ã§ã¢ãã¤ã«ã§ããã§ããªãã£ããã¨ãwebã§ãã©ãã©ãã§ããããã«ãªã£ã¦ãã¦ãã¾ãã ã¾ããFirebaseã使ããã¨ã§ã¯ã©ã¢ã³ããµã¤ãã ãã®é«éãªãµã¼ãã¹éçºãå¯è½ã«ãªã£ã¦ãã¦ãã¦ãä»å¾ã¾ãã¾ãWebããã³ãã¨ã³ãã®ãã¼ãºã¯å¢ããã®ã¯ç¢ºå®ã§ãã ï¼ãµã¼ãã¼ãµã¤ããå¿ è¦ãªãã¨ãã主張ããããã®ã§ã¯ããã¾ãããï¼ Webããã³ãã¨ã³ããã©ã®ããã«åå¼·ããã®ã åå¿è ã«ç«ã¡ã¯ã ããå£ ããããä½ãä½ã£ã¦ã¿ããã¨æã£ã¦ããªããªãã»ã©ããã¢ããªãããã¾ãããTODOãããç°¡åãªãã®ã ã¨é°å²æ°ãæ´ãã®ã«ã¯ã¡ããã©ã
React Hooksã®æ£å¼ãªãªã¼ã¹ï¼2019å¹´2æï¼ããããããä¸å¹´ãçµã¨ãã¨ãã¦ãã¾ããHooksã®ç»å ´ã«ãã£ã¦Reactã®ã³ã³ãã¼ãã³ãã¯é¢æ°ã³ã³ãã¼ãã³ãã䏿°ã«ä¸»æµã«ãªããã¯ã©ã¹ã³ã³ãã¼ãã³ããæ°è¦ã«ä½ãããæ©ä¼ã¯æ¿æ¸ãã¾ããã ã¾ããReact 17.xç³»ã§ã¯Concurrent Modeã®å°å ¥ã¨ã¨ãã«ããã«2種é¡ã®æ°ããã¯ã追å ãããè¦è¾¼ã¿ã§ããããããã颿°ã³ã³ãã¼ãã³ãã®è½åãã¯ã©ã¹ã³ã³ãã¼ãã³ããçã«ä¸åãæä»£ãæ¥ããã¨ã«ãªãã¾ãã ãã®è¨äºã§ã¯ãããã¯ã®ä¸ç¨®ã§ããuseReducerã«ç¦ç¹ãå½ã¦ã¦ãã©ã®ãããªã¨ãã«useReducerãé©ãã¦ããã®ãã説æãã¾ãã究極çã«ã¯ãuseReducerã«ãã£ã¦éæã§ããããã©ã¼ãã³ã¹æ¹åããããã¨ãã«ã¯ãããã³ã³ãã¼ãã³ãè¨è¨ã«ã¾ã§å½±é¿ãä¸ãããã¨ãææãã¾ãã useStateã®å½±ã«é ãããããªããReduxã¨æ¯è¼ãããã
Reactããã®æµãã§ãçµã¿åããã¦ã®éç¨ä¾ã®å¤ãReduxãåå¼·ãã¦ã¿ã¾ããã Fluxã®æ¦å¿µãReduxã®åºæ¬æ©è½ãReactã¨ã®é£æºã«ã¤ãã¦å ¬å¼ã®ããã¥ã¡ã³ããä¸å¿ã«ã¾ã¨ãã¦ãã¾ãã ããã¼èªä½ãå³å¯ã§ãããªãããå®è£ ä¸ã®å¶ç´ãå°ãªãç¹ãé åçã«æãã¾ãããã ãã¼ã¿ã¢ãã«ãUIããªã¼ã®è¨è¨ããã¡ã¤ã«/ã¯ã©ã¹åå²ããã£ã¬ã¯ããªæ§æãªã©ã«ã¤ãã¦ãæç¢ºãªè¦ç´ãåå¨ããã(ç¹ã«ã¹ã±ã¼ã«ãè¦è¶ãã¦ã®)éç¨æ¹éã¯ä½¿ãè¾¼ã¿ãªããæ¨¡ç´¢ãã¦ããå¿ è¦ãããããã§ãã æ¦è¦ Redux = React Communityãéçºãã¦ããJavaScriptãã¬ã¼ã ã¯ã¼ã¯ ãªã¼ãã³ã½ã¼ã¹, MITã©ã¤ã»ã³ã¹ Fluxã®èãæ¹/ã¢ã¼ããã¯ãã£ã«ãã¨ã¥ãã¦ãã åæ¹åã«ãã¼ã¿ãå¦çãããã¼ããããã¨ã§ãããããããããã³ãã¨ã³ãä½ãã¾ããããã¨ããèã ã¦ã¼ã¶ã®æä½ â View â Action â Redu
ng-kyoto Angular Meetup #9 ã§ã®çºè¡¨è³æã§ãã https://ng-kyoto.connpass.com/event/113358/
以åãReact Redux ãç¨ãã SPA æ°è¦ãµã¼ãã¹ãéç¨ãã¦å¾ãç¥è¦ã¨å®è£ ä¾ãã¨è¨ããã¼ãã§çºè¡¨ããå 容ã«ãå çä¿®æ£ãã¦è¨äºã«ãã¦ã¿ã¾ããã2å¹´åãããåãçµãã§è¦ã¦ã®çµæãææ³ãã·ã§ã¢ã§ããã°ã¨æãã¾ãã 対象èªè SPA ã®éçºã«èå³ãããæ¹ æè¿ã® WEB ããã³ãã¨ã³ãéçºã«èå³ãããæ¹ ããç¨åº¦ React ã Redux ã触ã£ããã¨ãããæ¹ã触ãããæ¹ ç®ç å ·ä½çãªå®è£ ä¾ããã¨ã«ç¥è¦ãå ±æããWeb éçºã®å½¹ã«ç«ã¦ã¦ã»ãã ããããªå®è£ ãããã£ã¨è¯ãæ¹æ³ãããã°ãæãã¦ã»ãã å 容 ã³ã¼ããã¼ã¹ã§ã®å®è£ ä¾ã®ç´¹ä» å©ç¨ãã¦ããã©ã¤ãã©ãªãéçºç°å¢ãéçºããã¼ã®å ±æ ãã®ä» SPA ãµã¼ãã¹ãéç¨ããä¸ã§ã®æ§æãç¥è¦ React Redux ã®ãããã React Facebook ãéçºããUI ã©ã¤ãã©ãª æ§æ¥ã® DOM æä½ã«ããç¶æ 管çã props ã st
ã»ãã¨ã«ãã£ã¡ã使ããããã®ã§æ©ã使ã£ã¦ãã ãã ãã¤ã¾ã§Reduxã§ãã¤ãã¤è¨ã£ã¦ããã§ããï¼ Unduxã£ã¦ï¼ Reactã®ç¶æ 管çããããã(ãã±ããªã¬ã¼ã¨ãããããªã)ã®ã©ã¤ãã©ãª å ¬å¼ï¼undux ç¹å¾´ ãã 使ãã ããªãgetã¨setããåå¨ããªãåªããä¸ç ãã ããrxjsãå©ç¨ããã°è¤éãªãã¨ãã§ãã (åã¯)åºæ¬çã«Reactã®åComponentã®Stateã§ç¶æ 管çããã¨ããæ¦å¿µã«ãã£ã¦ãã(ã¨æã) ã¨ããããã³ã¼ããè¦ã¦ãã ä»åã¤ããã®ã¯ç°¡åãªãã£ããã¢ããªã®ã¢ãã¯ã ã¨æã£ã¦ãã ãã ãã£ããã¢ããªã®å ¨ã½ã¼ã¹ï¼socket_test ã¾ãunduxã®ã¤ã³ã¹ãã¼ã«ãã
mizchi/redux-workerized ä½ã£ãã yarn add redux-workerize ã§å ¥ãã å ã 㯠react-hooks ã§ redux ã¸ã®ã¢ããã¿ãæ¸ãã¦ããã ãã®ã©ã¤ãã©ãªã ã£ãã⦠TypeScript ãã¬ã³ããªã¼ãªAPIã«ãã ReactRedux.Provider ã®ç°ãªãAPI表ç¾ã ãããé¢ç½ããªã ããã Redux.Store ã worker ã«ç½®ã㦠postMessage ã§æ´æ°ããã mapStateToProps ãæ´æ°å¦çã®æå¶ã®å¦çãCPU使ããããworker ã«ç½®ãã JSONé£ã³äº¤ã£ã¦ãã ãã ãã React ã ãããã¤ã¾ããªããã Vue Plugin ãæä¾ããã çµæããã¸ãã¹ãã¸ãã¯ã Worker ã«åãåºãããä¸ã§ã React 㨠Vue ãåã Store ãå ±æããããã«ãªã£ãã ã©ããªã£ã¦ããã¨ããã¨
ä»ã¾ã§èªåã§ä½ã£ããã®ãåæ°åãä»äºã§5社ãããã® redux ãè¦ã¦ããã®ã§ããã®çµææãã¨ãããæ¸ãã åæã¨ãã¦ãèªåã¯ã¨ã³ã·ã¹ãã ã«ä¹ãã¨ããæå³ã§ä»ã§ã¯ redux è¯å®æ´¾ã ããredux ããèªèº«ãéå°ã«æ±ãã¦ããè¤éãã¯ãã£ã¨åè§£ãããã¹ãã ãã¨ããç«å ´ã Redux ããã¾ãè¨è¨ããã¦ããã¨ã©ããªãã ä¸è²«ããä¸ã¤ã®è¨è¨è«ã«å¾ãã®ã§ãèãããã¨ããªããªã é£ãããå»ãããã®ã§ã¯ãªããé£ããé¨åãä¸ç®æã«éä¸ãããReact Component ã®æ«ç«¯ã§ã¯ãä½ãèãããã¨ããªããªããç¶æ 管çã¨ããé£ããé¨åãä½ã人ã¨ãæ«ç«¯ã®ã³ã³ãã¼ãã³ãã®ãã¶ã¤ã³ã«æ³¨åãã人ãåããããã å¤§è¦æ¨¡ã«ãªã£ã¦ãè¨è¨ãç ´ç¶»ãã«ãããã¨ããã¨ã³ã¿ã¼ãã©ã¤ãºåããªç¹æ§ãæã¤ããããã®æè¡åºç¤ã¯(éç)颿°åç±æ¥ã®èããå¤ããåºç¤è¨è¨ãåºç¤çè§£ã«ã¯ãã¤ã¹ãã«ãè¦æ±ãããéè¦ã¨é©ç¨å¯¾è±¡ã®ãã¹ããããæãã
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ãã®è¨äºã¯ Reactã§ä»ã©ããªWebã¢ããªãä½ãããï¼ããããã°ãµã¼ãã¼ã¬ã¹ã«ãããï¼ ãã¥ã¼ããªã¢ã«ã¯è§¦ã£ã¦ã¿ããã©ããã®å¾ã¯ã©ããããè¯ãã®ãå³ãå·¦ãåãããªã ã¨ãã人åãã«ãããããªæãã§å®è£ ãããå ¬éã§ããã¢ããªã¨ãã¦ã®ä½è£ã¯æ´ãããã§ãããã¨ãããªã¬ãªã¬HowToãã¾ã¨ãããã®ã§ãã ã¼ã¼è¿½è¨ï¼2019/4ï¼ã¼ã¼ ãã®è¨äºã¯2018/9ã«ä½ã£ããã®ãªã®ã§ããã¼ã¸ã§ã³å¨ããªã©çµæ§å¤ããªã£ã¡ãã£ã¦ã¾ããMaterialUIãªã©ã¯ä»ã¯V3ãåºã¦ãã¦ããã¥ã¡ã³ããè¦ãæãªã©ã注æããã ããã°ã¨æãã¾ããåèç¨åº¦ã«ãæ´»ç¨ä¸ããã ã¾
è¿ã ã¡ãã£ã¨ããã¦ã§ãã¢ããªãä½ãå¿ è¦ãããããã®ããã®äºå調æ»ãå ¼ãã¦ãã¦ããã¼ãµã«ãª JavaScript ã¢ããªã±ã¼ã·ã§ã³ãä½ãããã®ãã¬ã¼ã ã¯ã¼ã¯ã§ãã Next.js 5.0 㨠TypeScriptã»Redux ã®çµã¿åããã試ãã¦ã¿ãã®ã§ããã®éç¨ã§èª¿ã¹ããã¨ãèãããã¨ã»å¦ãã ãã¨ãã¤ãã¤ãã¨æ¸ãç¶´ã£ã¦ã¿ã¾ããä¼¼ããããªãã¨ããããã¨ãã¦ããæ¹ã®åèã«ãªãã°å¹¸ãã§ããã¾ãã詳ããæ¹ã«ã¯ã¢ããã¤ã¹é ããã¨å¬ããã§ãã åææ¡ä»¶ ä»åãã¨ãã¨ããããã£ãè¦ä»¶ã¨ãã¦ã¯ä»¥ä¸ã«ãªãã¾ãã SSR ã«å¯¾å¿ããï¼React ã使ãã«ãã Vue ã使ãã«ãã Google ã® FCF ã使ãé¢ä¿ã§ SSR ãå¿ é ã§ãã å¯è½ãªç¯å²ã§é«éåããï¼ä¿å®æ§ã«é£ãåºãªãç¯å²ã§é«éåããããå¯è½ãªã PWA ãæ¤è¨ãããã ããç¨åº¦ã®ã¡ã³ããã³ã¹æ§ï¼èªåãå«ãã¦ããã³ãã¨ã³ãå°éã§ãªã人ãçæéã§
ã¯ããã« Ovto(ãªãã)ã¨ããRubyã§æ¸ããã·ã³ãã«ãªã¯ã©ã¤ã¢ã³ããµã¤ãWebãã¬ã¼ã ã¯ã¼ã¯ãä½ãã¾ãããRubyããJavaScriptã¸ã®å¤æã«ã¯Opalã使ã£ã¦ãã¾ãã (2019/02/08追è¨ï¼Rubyist Magazineã«ç´¹ä»è¨äºãå¯ç¨¿ãã¾ãããæ¬è¨äºããå°ã詳ããã§ãã) (2018/11/02追è¨ï¼0.2.0ããªãªã¼ã¹ãã¾ãã) (2018/11/30追è¨ï¼ããã使ã£ã¦Visionã¨ããTODOã¢ããªãä½ãã¾ããã3ã¶æã»ã©å®ç¨ãã¦ãã¾ããã¨ã¦ãããæãã§ããã¯ã©ã¤ã¢ã³ãå´ã®ã³ã¼ãã¯ãã®ã¸ãã§ã) ç¹å¾´ Rubyã§æ¸ãã Redux風ã®API (Virtual DOMï¼ã·ã³ã°ã«ã¹ãã¼ã) hyperappã®å½±é¿ãå¼·ãåãã¦ãã¾ãã å®è£ ãçã(lib/以ä¸ã®åè¨ã721è¡) ä¾ ä¾ã¨ãã¦è¯æ°ã¨ææ°ã夿ãããã¤ãããã¾ãã require 'ovto' class
å··ã®ããã³ãã¨ã³ãã§ã¯React+Reduxã®æè¡ã¹ã¿ãã¯ãã©ã¡ãã¯ã½æµè¡ã£ã¦ã¾ããï¼ ã¨ã¯ãããReduxã ã¨ãã¯ãã©ããã¦ãã²ã¨ã¤ã¢ããªãä½ãéã®ãã¤ã©ãã¬ã¼ãã³ã¼ãã®å¤ãããã¹ãã¼ãã®æ´æ°ã«ãã£ã¦ããªã¬ãããå¯ä½ç¨å¦çã®ãã³ããªã³ã°ãredux-sagaãredux-side-effectsãªãã§ã¯ãã¾ããããªãã±ã¼ã¹ãå¤ãã§ãã ãããReduxã¨ãã®å¨è¾ºã©ã¤ãã©ãªã®ãããã¤ãã«ã¡ãã£ã¨ã§ããã©ããæãå§ããããUnduxã試ããã£ã³ã¹ã§ãã Unduxã¨ã¯ï¼ Dead simple state management for React Reactã®ããã®æ»ã¬ã»ã©ã·ã³ãã«ãªã¹ãã¼ã管çã©ã¤ãã©ãªã§ãã ç¹å¾´ TypeScriptãFlowãªã©ã§ã®åä»ããæèããè¨è¨ã Reduxã«ãããAction, Reducer, Dispatcher, Containerãªã©ã®æ¦å¿µãå¿ è¦ã¨ã
ãªãreducerã®ãã¹ããéè¦ãï¼ flowç°å¢ã§åã«ãã£ã¦è¿ãStateãæ ä¿ããã¦ããã¨ãã¦ããä¾ç¶ã¨ãã¦reducerã®ãã¹ãã¯éè¦ã§ãã ç°¡åãªä¾ããããã¨ãINCREMENTã§countã+1ããããã¸ãã¯ãããã¨ããnumberåã§ããã¨ä¿è¨¼ããã¦ããã¨ãã¦ãã+1ããã¦ããã®ã-1ããã¦ããã®ããã¯ãã¾ã+100000ããã¦ããã®ãã«ã¤ãã¦ã¯ä¿è¨¼ããã¦ããªãããã§ãã ãã®ãã¸ãã¯ãæ ä¿ããã®ããã¹ãã®å½¹å²ã§ãã reducerã®ãã¹ãã®æ¸ãæ¹ flowç°å¢ã¨ãã以å¤ã§ãã¹ãã®æ¸ãæ¹ãéãã¾ãã ãã©ãã£ã·ã§ãã«ãªãã¹ãã ã¨{type: ACTION}ã®å½¢å¼ã§ãã¹ããæ¸ããã¨ãå¤ãã¨æãã¾ãããflowç°å¢ã ã¨Actionãåã§æ ä¿ããã¦ããããã¢ã¯ã·ã§ã³ã¯ãªã¨ã¤ã¿ã¼ããã®ã¾ã¾å®è¡ãã¦æ¸ãã¾ãã ãã©ãã£ã·ã§ãã«ãªæ¸ãæ¹ã§ãããã§ããããã®æ¹ãè£å®ãå¹ãã®ã§ãªã¹ã¹ã¡ãã¾ãã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}