React 16.3-alphaã¯
npmã§å
¬éãããŠãããæ¢ã«ããŠã³ããŒãããŠäœ¿çšã§ããŸãã 仿¥ã¯ããã®ãªãªãŒã¹ã®æå€§ãã€æãè峿·±ã驿°ã«ã€ããŠã話ããŸãã ç¹ã«ãã³ã³ããã¹ãAPIãæ°ããã©ã€ããµã€ã¯ã«ã¡ãœãããéçã¡ãœãã
getDerivedStateFromProps
ã
StrictMode
ããã³
AsyncMode
ãæŽæ°ãããReactéçºè
ããŒã«ã«ã€ããŠèª¬æããŸãã

æ°ããã³ã³ããã¹ãAPI
Context APIã¯åžžã«äžå¯è§£ãªãã®ã®ããã«èŠããŸããã äžæ¹ã§ãããã¯å
¬åŒã®ææžåãããReact APIã§ãããéçºè
ã¯ãæéã®çµéãšãšãã«å€æŽãããå¯èœæ§ããããæå³çã«äžå®å
šã§ããããã䜿çšãã¹ãã§ã¯ãªããšèŠåãããŸããã ãã®APIã®æä»£ãå°æ¥ã
ãRFCãã§ãŒãºãçµäºããééããªããã䜿ãããããªã£ãæ°ããAPIãéçºè
ã«å©çšå¯èœã«ãªããŸããã ReduxãMobXã®ã食ããã®ãªãã·ã³ãã«ãªç¶æ
管çã ããå¿
èŠãªå Žåã¯ãçæŽ»ã楜ã«ãªããŸãã
æ°ããAPIã¯
React.createContext()
圢åŒã§å©çšã§ãã2ã€ã®ã³ã³ããŒãã³ããèªç±ã«äœ¿çšã§ããŸãã
React.createContextã³ãã³ãã䜿çšããŠæ°ããã³ã³ããã¹ããäœæããããã§ããã¡ã¯ããªãŒé¢æ°ãåŒã³åºãããšã«ããã
Provider
èŠçŽ ãš
Consumer
èŠçŽ ããããªããžã§ã¯ããååŸããŸãã
Provider
ã¯ããã®ååšã®ç®çããç¬èªã®ãµãããªãŒå
ã®ãã¹ãŠã®ã³ã³ããŒãã³ãã«ããŒã¿ãæäŸããããšã§ããç¹å¥ãªã³ã³ããŒãã³ãã§ãã ããšãã°ã次ã®ããã«ãªããŸãã
æ°ããã³ã³ããã¹ãAPIã®äœ¿çš-Coâântext.Providerããã§ã
theme
ã³ã³ããã¹ããæž¡ããµãããªãŒïŒãã®å Žåã¯ããªãŒå
šäœïŒãéžæããã転éããå¿
èŠãããå€ãèšå®ãããŸãã ãã¡ãããå€ã¯åçã«ããããšãã§ããŸãïŒã€ãŸãã
this.state
åºã¥ããŠïŒã
次ã®ã¹ãããã¯ã
Consumer
èŠçŽ ã䜿çšããããšã§ãã
æ°ããã³ã³ããã¹ãAPIã®äœ¿çš-Coâântext.Consumeré©åãª
Provider
åã蟌ãŸãã«
Consumer
ãã¬ã³ããªã³ã°ãããšã
createContext
宣èšãããããã©ã«ãå€ã䜿çšãããŸãã
次ã®ããšã«æ³šæããŠãã ããã
Consumer
ã³ã³ããŒãã³ãã¯ãæ¢ã«äœ¿çšãããŠããContext
ã³ã³ããŒãã³ãã«ã¢ã¯ã»ã¹ã§ããå¿
èŠããããŸãã åãå
¥åãã©ã¡ãŒã¿ãŒã§æ°ããã³ã³ããã¹ããäœæãããå Žåãããã¯æ°ããContext
ã³ã³ããŒãã³ããäœæããããšãšåãã§ãããã®çµæãå
ã®Context
ã³ã³ããŒãã³ãã«ãã£ãããŒã¿ã¯Consumer
ã³ã³ããŒãã³ãã«è»¢éãããŸããã ãã®ããã Context
ã¯ã³ã³ããŒãã³ããšããŠæ±ãããå¿
èŠããããŸããäžåºŠäœæããŠãããå¿
èŠãªå Žæã«ãšã¯ã¹ããŒããŸãã¯ã€ã³ããŒãããå¿
èŠããããŸãã
- æ°ããæ§æã§ã¯ãReactã®ãåå«ãšããŠã®æ©èœããã³ãã¬ãŒãïŒã¬ã³ããŒãããããšãåŒã°ããŸãïŒã䜿çšããŸãã ãã®ãã³ãã¬ãŒãã«è©³ãããªãå Žåã¯ã ãã®è³æãã芧ãã ããã
- æ°ããã³ã³ã¹ãã©ã¯ãã䜿çšããå Žåãæ°ããContext APIã䜿çšããäºå®ã§ããã°ã
prop-types
ã䜿çšããŠcontextProps
ãæå®ããå¿
èŠã¯ãªããªãcontextProps
ã
颿°ã«æž¡ãããã³ã³ããã¹ãã®ããŒã¿ã¯ã
Context.provider
ã³ã³ããŒãã³ãã®ãããã€ããŒã«èšå®ããã
value
ããããã£ã«å¯Ÿå¿ãã
Provider
ã³ã³ããŒãã³ãã®ããŒã¿ã倿Žãããšããã®ããŒã¿ã®ãã¹ãŠã®ã³ã³ã·ã¥ãŒããŒãåæç»ãããŸãã
æ°ããã©ã€ããµã€ã¯ã«ãã¯ããã¯
RFCã®æ®µéããæ€èšäžã®Reactã¢ã«ãã¡ãªãªãŒã¹ã«å
¥ã£ãå¥ã®ã€ãããŒã·ã§ã³ã¯ãããã€ãã®ã©ã€ããµã€ã¯ã«ã¡ãœããã®é³è
åãšããã€ãã®æ°ããã¡ãœããã®å°å
¥ã«é¢ä¿ããŠããŸãã
ãã®å€æŽã¯ãæšå¥šãããéçºã¢ãããŒããå°å
¥ããããšãç®çãšããŠããŸãïŒãããã®é¢æ°ãæ±ãã«ããçç±ã«é¢ãã
è³æããããŸãïŒãããã¯ãéåæã¬ã³ããªã³ã°ã¢ãŒããå®å
šã«ã¢ã¯ãã£ãåãããåŸã«ç¹ã«éèŠã«ãªããŸãReact 16ïŒã
ãã°ãããããšéæšå¥šã«ãªãæ©èœã¯æ¬¡ã®ãšããã§ãã
componentWillMount
颿°ã代ããã«componentDidMount
ã䜿çšããããšãææ¡ãããŠãcomponentDidMount
ã
componentDidUpdate
ã眮ãæããcomponentWillUpdate
颿°ã
componentWillReceiveProps
颿°ã æ°ããéç颿°getDerivedStateFromProps
ããã®é¢æ°ã®ä»£æ¿ãšããŠææ¡ãããŠããŸãã
äžèšã«ç
§ãããŠããããã®æ©èœã¯åŒãç¶ã䜿çšã§ããããããããã¯ã«é¥ããªãã§ãã ããã ãããã®æ©èœãå€ããšããéç¥ã¯React 16.4ã«è¡šç€ºããããããã®åé€ã¯Reactã®ããŒãžã§ã³17ã§èšç»ãããŠããŸãã
Reactéçºè
ã®ãã£ã³ãã§ãããã¯ã ãã³ã»ã¢ãã©ã¢ãã¯å¿é
ããªãããšãææ¡ããŸããã圌ã®èšèã¯èª°ã«ã圱é¿ããŸããéç¥ã¯ãæ°ãã
StrictMode
ãŸãã¯
AsyncMode
ã䜿çšããå Žåã«ã®ã¿è¡šç€ºãããŸããããããã®å Žåã§ããæ¬¡ã®æ¹æ³ã䜿çšããŠç¡å¹ã«ããããšãã§ããŸãã
UNSAFE_componentWillMount
UNSAFE_componentWillReceiveProps
UNSAFE_componentWillUpdate
éçã¡ãœããgetDerivedStateFromProps
componentWillReceiveProps
ã¯åé€ããããããããããã£ã®å€æŽã«åºã¥ããŠç¶æ
ãæŽæ°ããã«ã¯ããã€ãã®ã¡ã«ããºã ãå¿
èŠã§ãã ãã®åé¡ã解決ããããã«ãæ°ããéçã¡ãœãããå°å
¥ããããšã決å®ãããŸããã
éçã¡ãœãããšã¯äœã§ããïŒ ããã¯ãã€ã³ã¹ã¿ã³ã¹ã§ã¯ãªãã¯ã©ã¹ã«ååšããã¡ãœããã§ãã ãã®ã¡ãœããã¯ã
this
ã¢ã¯ã»ã¹ã§ããã宣èšã«
static
ããŠããã¡ãœãããšããŠèª¬æããã®ãããããæãç°¡åã§ãã
ããããçåãçããŸãã 颿°ãããã«ã¢ã¯ã»ã¹ã§ããªãå Žåã
this.setState
ã©ã®ããã«åŒã³åºãã®
this.setState
ãïŒ çãã¯ããã®ãããªãã®ãåŒã³åºãå¿
èŠã¯ãªããšããããšã§ãã ãã®é¢æ°ã¯ãæŽæ°ãããã¹ããŒã¿ã¹ããŒã¿ã®ã¿ãè¿ãå¿
èŠããããŸãããŸãã¯ãæŽæ°ãäžèŠãªå Žåã¯
null
ãè¿ã
null
ã
getDerivedStateFromPropsã䜿çšããŠç¶æ
ãæŽæ°ããè¿ãããå€ã¯ãçŸåšã®
setState
å€ãšãŸã£ããåãããã«åäœããŸããç¶æ
ã®å€æŽãããéšåãè¿ãã ãã§ãä»ã®ãã¹ãŠã®å€ã¯
setState
ãšåããŸãŸã§ãã
getDerivedStateFromPropsã䜿çšããããã®äŸ¿å©ãªãã³ã
stateç¶æ
ãåæåããããšãå¿ããªãã§ãã ãã
ç¶æ
ãåæåããããšãå¿ããªãã§ãã ããã³ã³ããŒãã³ãã®åæç¶æ
ã®åæåããã£ã³ã»ã«ãã人ã¯ããŸããã ããã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒã§è¡ãããã¯ã©ã¹ãã£ãŒã«ããèšå®ããŠè¡ãå¿
èŠããããŸãã
âåŒã³åºãæ©èœgetDerivedStateFromProps
åé¡ã®é¢æ°ã¯ãæåã®ããŠã³ãæãšã³ã³ããŒãã³ãã®åæç»æã«åŒã³åºããããããã³ã³ã¹ãã©ã¯ã¿ãŒã®ããããã£ã«åºã¥ããŠç¶æ
ãäœæãã代ããã«äœ¿çšã§ããŸãã
get getDerivedStateFromPropsãšcomponentWillReceivePropsã®å
±æäžã«ãšã©ãŒãçºçããŸãã
getDerivedStateFromPropsã®ã¿ã䜿çšããããšãæšå¥šãããèŠågetDerivedStateFromProps
ãš
componentWillReceiveProps
äž¡æ¹ã宣èšãããšã
getDerivedStateFromProps
颿°ã®ã¿ã
getDerivedStateFromProps
ããã³ã³ãœãŒã«ã«èŠåã衚瀺ãããŸãã
callbackã³ãŒã«ããã¯ãšcomponentDidUpdateã«ã€ããŠ
éåžžãã³ãŒã«ããã¯ã䜿çšããŠãæ£åžžãªç¶æ
æŽæ°åŸã«äžéšã®ã³ãŒããå®è¡ãããããã«ããå Žåã¯ãã³ãŒã«ããã¯ã§ã¯ãªã
componentDidUpdate
䜿çšã
componentDidUpdate
ã
staticéçããŒã¯ãŒãã«ã€ããŠ
static
ã䜿çšããªãå Žåã¯ã代æ¿è¡šèšã䜿çšã§ããŸãã
staticããŒã¯ãŒãã䜿çšããã«getDerivedStateFromPropsã宣èšããŸãæ°ããStrictModeã³ã³ããŒãã³ã
Strict Reactã¢ãŒãã¯ã
React.StrictMode
ã§å©çšå¯èœãªã³ã³ããŒãã³ãã«ãã£ãŠè¡šãããŸãã ã¢ããªã±ãŒã·ã§ã³ã®ããªãŒãŸãã¯ãµãããªãŒã«è¿œå ã§ããŸãã
use strictã䜿çšããŠ...ãããããã§ã¯ãããŸããã ãã¡ãããStrictModeã³ã³ããŒãã³ããæå³ããŸããStrictMode
䜿çšãã
StrictMode
ã¯ããã®ã³ã³ããŒãã³ãã®ãããã§ãã·ã¹ãã ãã³ãŒããæšå¥šãããéçºã¢ãããŒãã«æºæ ããããšãä¿èšŒããã®ã«åœ¹ç«ã€ãšããããšã§ãã
StrictMode
ãµãããªãŒã«è¡šç€ºãããåã³ã³ããŒãã³ãã®1ã€ãäžèšã®ã¡ãœããïŒ
componentWillMount
ïŒã䜿çšããå Žåãéçºã¢ãŒãã§ãããžã§ã¯ããéå§ãããšããã©ãŠã¶ãŒã³ã³ãœãŒã«ã«ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŸãã
StrictModeãµãããªãŒã§å®å
šã§ãªãã©ã€ããµã€ã¯ã«ã¡ãœããã䜿çšãããšã©ãŒå ±åãšã©ãŒã¡ãã»ãŒãžã¯ãã©ã€ããµã€ã¯ã«ã¡ãœããã®åé€ã«ã€ããŠèª¬æããŠããRFCã
æãããã«ãªããŸããã
æ°ããAsyncModeã³ã³ããŒãã³ã
éåæã³ã³ããŒãã³ãã®ãŸã éã¢ã¯ãã£ããªãµããŒãã¡ã«ããºã ã®ååã倿Žããããã®ååã
StrictMode
ã³ã³ããŒãã³ãã®ååãšäžèŽããããã«ãªã
StrictMode
ã ãã®ã³ã³ããŒãã³ãã¯
React.unsafe_AsyncMode
ã§èŠã€ããããšãã§ããŸãã
AsyncMode
ã䜿çšãããšã
AsyncMode
åºæã®éç¥ãã¢ã¯ãã£ãã«
StrictMode
ãŸãã
Reactã®éåæã³ã³ããŒãã³ãã«ã€ããŠè©³ããç¥ãããå Žåã¯ã
ãã¡ããš
ãã¡ããã芧ãã ãã ã
æ°ããReact Developer ToolsããŒãžã§ã³
äžèšã®é©æ°ã«å ããŠãç§ãã¡ã話ããŠããReactãªãªãŒã¹ã§ã¯ãæ°ããã³ã³ããŒãã³ãã®ãããã°ããµããŒãããéçºè
ããŒã«ã®æ°ããããŒãžã§ã³ãå°å
¥ãããŸããã
Chromeã䜿çšããå ŽåãChromeãŠã§ãã¹ãã¢ã®å¯Ÿå¿ããæ¡åŒµæ©èœã¯ãŸã æŽæ°ãããŠããããå€ãããŒã«ã䜿çšããŠæ°ããã³ãŒãããããã°ããããšãããš...è峿·±ãçµæã«ã€ãªãããããå°ãåŸ
ã€å¿
èŠããããŸãã
React .__ SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIREDã¬ã³ãŒãã¯ãŸã å£ããŠããŸãããããããFirefoxãŠãŒã¶ãŒã¯ãã§ã«æ°ãããã¶ã€ã³ããããã°ã§ããŸãã
Firefoxã§ãããã°ãããšãã«æ°ããéåæã³ã³ããŒãã³ãã確èªã§ããŸãçµæïŒæãè峿·±ãã®ã¯å
ã§ã
ããã§ã¯ãReact 16.3ã®ã¢ã«ãã¡ãªãªãŒã¹ã®é©æ°æ§ãæ€èšŒããŸãããããã®ãªãªãŒã¹ã®å®å®çã«ã¯ç°ãªã倿Žã»ãããå«ãŸããŠããå¯èœæ§ããããŸãã ããã«ã€ããŠãã³ã»ã¢ãã©ã¢ãã®èšèã«çŠç¹ãåããããšãReact 16.3.0ãããã«åºãŠããã¯ãã§ãã
å
é±ã圌ãã¯æ¥é±ã«ã€ããŠè©±ããŸããã芪æãªãèªè
ïŒ æ°ããReactæ©èœã«ã€ããŠã©ãæããŸããïŒ
