Reactã®experimental_Scope Isolation Boundaryã培åºè§£èª¬ãå©ç¹ãå®è£ ãé«åºŠãªäœ¿çšäŸãéããŠãå ç¢ã§ä¿å®æ§ã®é«ãReactã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯æ¹æ³ãæ¢ããŸãã
React experimental_Scope Isolation Boundary: ã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ã管çããã¹ã¿ãŒãã
Reactã¯ã³ã³ããŒãã³ãããŒã¹ã®ã©ã€ãã©ãªã§ãããéçºè
ã¯å°ããåå©çšå¯èœãªã³ã³ããŒãã³ããçµã¿åãããŠè€éãªUIãæ§ç¯ããããšãæšå¥šãããŠããŸããããããã¢ããªã±ãŒã·ã§ã³ãèŠæš¡ãšè€éããå¢ãã«ã€ããŠããããã®ã³ã³ããŒãã³ãã®ã¹ã³ãŒããšã³ã³ããã¹ãã®ç®¡çã倧ããªèª²é¡ãšãªãããšããããŸãã ããã§Reactã® experimental_Scope Isolation Boundaryã圹ç«ã¡ãŸãããã®åŒ·åãªïŒãã ãå®éšçãªïŒæ©èœã¯ãã³ã³ããŒãã³ãããªãŒã®ç¹å®éšåã®ã¹ã³ãŒããå¶åŸ¡ã»åé¢ããã¡ã«ããºã ãæäŸããããã©ãŒãã³ã¹ã®åäžãã³ãŒãæ§æã®æ¹åãã³ã³ããã¹ãäŒæã®ããé«åºŠãªå¶åŸ¡ãå®çŸããŸãããã®ããã°èšäºã§ã¯ãã¹ã³ãŒãåé¢ã®èåŸã«ããæŠå¿µãæ¢ããexperimental_Scope ã®å®è·µçãªå®è£
ãæãäžããäžçäžã§å
ç¢ãã€ä¿å®æ§ã®é«ãReactã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®é«åºŠãªäœ¿çšäŸã«ã€ããŠè°è«ããŸãã
ã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ããšãã®éèŠæ§ã®çè§£
experimental_Scope ã®è©³çްã«å
¥ãåã«ãã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ããšã¯äœãããããŠãããReactéçºã«ãããŠãªãéèŠãªã®ããæç¢ºã«çè§£ããŸãããã æ¬è³ªçã«ãã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ããšã¯ãã¢ããªã±ãŒã·ã§ã³ã®ç¹å®éšåå
ã§ããŒã¿ïŒã³ã³ããã¹ããªã©ïŒã®å¯èŠæ§ãšã¢ã¯ã»ã¹å¯èœæ§ãå®çŸ©ããå¶åŸ¡ããèœåãæããŸãã é©åãªã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ãããªããã°ãã³ã³ããŒãã³ããæå³ããã¢ããªã±ãŒã·ã§ã³ã®ä»ã®éšåã®ããŒã¿ãã¢ã¯ã»ã¹ããã倿ŽãããããŠããŸããäºæãã¬åäœããããã°ãå°é£ãªåé¡ã«ã€ãªããå¯èœæ§ããããŸããå€§èŠæš¡ãªeã³ããŒã¹ã¢ããªã±ãŒã·ã§ã³ã§ããŠãŒã¶ãŒã®ã·ã§ããã³ã°ã«ãŒãããŒã¿ãååæšèŠã衚瀺ããã³ã³ããŒãã³ãã«ãã£ãŠæå³ãã倿ŽãããŠããŸãç¶æ³ãæ³åããŠã¿ãŠãã ãããããã¯ãã¹ã³ãŒããé©åã«ã³ã³ãã€ã³ã¡ã³ããããŠããªãå Žåã«èµ·ããããå
žåçãªäŸã§ãã
广çãªã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ãã®äž»ãªå©ç¹ã¯ä»¥äžã®éãã§ãïŒ
- ããã©ãŒãã³ã¹ã®åäžïŒ ã³ã³ããã¹ãæŽæ°ã®ã¹ã³ãŒããå¶éããããšã§ã倿ŽãããããŒã¿ã«å®éã«ã¯äŸåããŠããªãã³ã³ããŒãã³ãã®äžèŠãªåã¬ã³ããªã³ã°ãé²ãããšãã§ããŸããããã¯ãããã©ãŒãã³ã¹ãæéèŠèŠãããå€§èŠæš¡ã§è€éãªã¢ããªã±ãŒã·ã§ã³ã«ãããŠç¹ã«éèŠã§ãã ãœãŒã·ã£ã«ã¡ãã£ã¢ã¢ããªã±ãŒã·ã§ã³ãèããŠã¿ãŠãã ãããæ°ããã¡ãã»ãŒãžãå±ãããšãã«åã¬ã³ããªã³ã°ãå¿ èŠãªã®ã¯ãªã¢ã«ã¿ã€ã éç¥ã衚瀺ããã³ã³ããŒãã³ãã ãã§ããããŠãŒã¶ãŒãããã£ãŒã«ããŒãžå šäœã§ã¯ãããŸããã
- ã³ãŒãæ§æã®æ¹åïŒ ã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ãã¯ãã³ãŒããããã¢ãžã¥ãŒã«åãããä¿å®æ§ã®é«ãæ¹æ³ã§æ§é åããã®ã«åœ¹ç«ã¡ãŸããã³ã³ããŒãã³ãã¯ããèªå·±å®çµåã«ãªããã°ããŒãã«ãªç¶æ ãžã®äŸåãå°ãªããªãããããã®åäœã«ã€ããŠæšè«ããåé¢ããŠãã¹ãããããšã容æã«ãªããŸããäŸãã°ããŠãŒã¶ãŒèªèšŒçšãããŒã¿ãã§ããçšãUIã¬ã³ããªã³ã°çšãªã©ãã¢ããªã±ãŒã·ã§ã³ã®ç°ãªãéšåã«å¯ŸããŠäºãã«ã»ãšãã©ç¬ç«ããå¥ã ã®ã¢ãžã¥ãŒã«ãäœæããããšãèããŠã¿ãŠãã ããã
- ç«¶åãªã¹ã¯ã®äœæžïŒ ã¢ããªã±ãŒã·ã§ã³ã®ç°ãªãéšåãåé¢ããããšã§ãè€æ°ã®ã³ã³ããŒãã³ããåãã°ããŒãã«ã¹ã³ãŒããå ±æããéã«çºçãããåœåç«¶åããã®ä»ã®åé¡ã®ãªã¹ã¯ãæå°éã«æããããšãã§ããŸãããããžã§ã¯ãã®ç°ãªãæ©èœã«ç°ãªãããŒã ãåãçµãã§ãããšæ³åããŠã¿ãŠãã ãããã¹ã³ãŒããé©åã«åé¢ãããŠããªããšã誀ã£ãŠåã倿°åãã³ã³ããŒãã³ãåã䜿çšããŠããŸããç«¶åããã°ãåŒãèµ·ããå¯èœæ§ããããŸãã
- åå©çšæ§ã®åäžïŒ é©åã«ã³ã³ãã€ã³ã¡ã³ããããã³ã³ããŒãã³ãã¯ãã¢ããªã±ãŒã·ã§ã³ã®ç°ãªãéšåãä»ã®ãããžã§ã¯ãã§ãåå©çšãããããªããŸããã°ããŒãã«ãªç¶æ ãåšå²ã®ç°å¢ã«é¢ããä»®å®ã«äŸåããªããããæ°ããã³ã³ããã¹ãã«å®¹æã«çµ±åã§ããŸãããã¿ã³ãå ¥åãã£ãŒã«ããã¢ãŒãã«ã®ãããªåå©çšå¯èœãªUIã³ã³ããŒãã³ããäœæããããšã¯ãReactã®ãããªã³ã³ããŒãã³ãããŒã¹ã®UIã©ã€ãã©ãªã®åºæ¬çãªç®æšã®äžã€ã§ãã
React experimental_Scope Isolation Boundaryã®ç޹ä»
experimental_Scope Isolation Boundaryã¯ãã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ããå¶åŸ¡ããããã®ãã现ããã¡ã«ããºã ãæäŸããããã«èšèšãããReact APIã§ããããã«ãããã³ã³ããŒãã³ãããªãŒå
ã«åé¢ããããã¹ã³ãŒãããäœæããã³ã³ããã¹ãå€ãã¹ã³ãŒãã®å¢çãè¶ããŠäŒæããã®ãé²ãããšãã§ããŸãã ããã¯å®è³ªçã«ãã³ã³ããã¹ãæŽæ°ã®åœ±é¿ãå¶éããããªã¢ãäœãåºããããã©ãŒãã³ã¹ãåäžãããã³ãŒãæ§æãç°¡çŽ åããŸãã ååã瀺ãããã«ããã®APIã¯çŸåšå®éšçãªãã®ã§ãããå°æ¥ã®Reactã®ããŒãžã§ã³ã§å€æŽãããå¯èœæ§ãããããšãèŠããŠããããšãéèŠã§ãã ããããããã¯Reactã«ãããã¹ã³ãŒã管çã®æªæ¥ãå£éèŠãããã®ã§ããããã®æœåšçãªå©ç¹ãæ¢æ±ãã䟡å€ããããŸãã
äž»èŠãªæŠå¿µ
- ã¹ã³ãŒãïŒ ã¹ã³ãŒãã¯ãç¹å®ã®ã³ã³ããã¹ãå€ãã¢ã¯ã»ã¹å¯èœãªã³ã³ããŒãã³ãããªãŒã®é åãå®çŸ©ããŸããã¹ã³ãŒãå ã®ã³ã³ããŒãã³ãã¯ããã®ç¥å ã«ãã£ãŠæäŸãããã³ã³ããã¹ãã«ã¢ã¯ã»ã¹ã§ããŸãããã³ã³ããã¹ãå€ã¯ã¹ã³ãŒãã®å¢çããè±åºãããããšã¯ã§ããŸããã
- åé¢å¢çïŒ
experimental_Scopeã³ã³ããŒãã³ãã¯åé¢å¢çãšããŠæ©èœããã³ã³ããã¹ãå€ããã®åå«ãè¶ããŠäŒæããã®ãé²ããŸããã¹ã³ãŒãå ã«é 眮ãããã³ã³ããã¹ããããã€ããŒã¯ããã®ã¹ã³ãŒãå ã®ã³ã³ããŒãã³ãã«ã®ã¿åœ±é¿ããŸãã - ã³ã³ããã¹ãã®äŒæïŒ ã³ã³ããã¹ãå€ã¯ã³ã³ããŒãã³ãããªãŒãäžæ¹åã«äŒæããŸãããããã¯
experimental_Scopeã«ãã£ãŠå®çŸ©ãããå¢çå ã«éãããŸããã¹ã³ãŒãå€ã®ã³ã³ããŒãã³ãã¯ãã¹ã³ãŒãå ã®ã³ã³ããã¹ãæŽæ°ã®åœ±é¿ãåããŸããã
experimental_Scope Isolation Boundaryã®å®è£ ïŒå®è·µã¬ã€ã
Reactã¢ããªã±ãŒã·ã§ã³ã§ experimental_Scope ã䜿çšããæ¹æ³ã説æããããã«ãå®è·µçãªäŸãèŠãŠãããŸãããã ãŸããReactãããžã§ã¯ããã»ããã¢ãããããŠãããå®éšçæ©èœããµããŒãããReactã®ããŒãžã§ã³ïŒéåžžã¯canaryãŸãã¯experimentalãã«ãïŒã䜿çšããŠããããšã確èªããŠãã ããããããããReactã®èšå®ã§å®éšçæ©èœãæå¹ã«ããå¿
èŠããããŸãã
䜿çšäŸïŒããŒãã³ã³ããã¹ãã®åé¢
UIå
šäœã®å€èгãå¶åŸ¡ããã°ããŒãã«ãªããŒãã³ã³ããã¹ããæã€ã¢ããªã±ãŒã·ã§ã³ããããšããŸããããããã¢ããªã±ãŒã·ã§ã³ã®æ®ãã®éšåã«åœ±é¿ãäžããããšãªããç°ãªãããŒããæã€ç¹å®ã®ã»ã¯ã·ã§ã³ãäœæããããšããŸãã ãã㯠experimental_Scope ã®å®ç§ãªäœ¿çšäŸã§ãã
1. ããŒãã³ã³ããã¹ãã®å®çŸ©
import React, { createContext, useContext, useState } from 'react';
const ThemeContext = createContext('light');
const ThemeProvider = ({ children }) => {
const [theme, setTheme] = useState('light');
const toggleTheme = () => {
setTheme(prevTheme => (prevTheme === 'light' ? 'dark' : 'light'));
};
const value = {
theme,
toggleTheme,
};
return (
{children}
);
};
const useTheme = () => useContext(ThemeContext);
export { ThemeContext, ThemeProvider, useTheme };
2. ç°ãªãããŒããæã€ã³ã³ããŒãã³ãã®äœæ
import React from 'react';
import { experimental_Scope as Scope } from 'react';
import { ThemeContext, ThemeProvider, useTheme } from './ThemeContext';
const SpecialSection = () => {
return (
Special Section
This section has its own isolated theme.
);
};
export default SpecialSection;
3. ã¢ããªã±ãŒã·ã§ã³ãžã®çµ±å
import React from 'react';
import { ThemeProvider, useTheme } from './ThemeContext';
import SpecialSection from './SpecialSection';
const App = () => {
return (
My Application
The main application theme.
);
};
export default App;
ãã®äŸã§ã¯ãSpecialSection ã³ã³ããŒãã³ã㯠experimental_Scope ã§ã©ãããããŠããŸããããã«ãããSpecialSection å
ã« ThemeContext ã®ããã®æ°ããåé¢ãããã¹ã³ãŒããäœæãããŸããexperimental_Scope ã® initialContext ãš initialValue ããããã£ã«æ³šç®ããŠãã ããããããã¯ãåé¢ãããã¹ã³ãŒãå
ã§ã³ã³ããã¹ããåæåããããã«éèŠã§ãããããããªããšãSpecialSection å
ã®ã³ã³ããŒãã³ãã¯ã³ã³ããã¹ãã«å
šãã¢ã¯ã»ã¹ã§ããªããããããŸããã
SpecialSection 㯠initialValue="dark" ã䜿çšããŠåæããŒãã 'dark' ã«èšå®ãããã®ããŒãã®åãæ¿ã㯠SpecialSection ã«ã®ã¿åœ±é¿ããã¡ã€ã³ã® App ã³ã³ããŒãã³ãã®ã°ããŒãã«ããŒãã«ã¯åœ±é¿ããŸããã
äž»èŠéšåã®èª¬æ
experimental_Scope: åé¢å¢çãå®çŸ©ããã³ã¢ã³ã³ããŒãã³ãã§ããã³ã³ããã¹ãå€ããã®åå«ãè¶ããŠäŒæããã®ãé²ããŸããinitialContext: åé¢ããã³ã³ããã¹ããæå®ããŸããããã«ãããexperimental_Scopeã¯ã©ã®ã³ã³ããã¹ãããã®å¢çå ã§ç®¡çãã¹ãããèªèããŸããinitialValue: åé¢ãããã³ã³ããã¹ãã®åæå€ãæäŸããŸããããã¯ãã¹ã³ãŒãå ã§ã³ã³ããã¹ããåæåããããã«éèŠã§ãã
experimental_Scope ã®é«åºŠãªäœ¿çšäŸ
åçŽãªããŒãã®åé¢ãè¶
ããŠãexperimental_Scope ã¯ããè€éãªã·ããªãªã§äœ¿çšã§ããŸãã以äžã«ããã€ãã®é«åºŠãªäœ¿çšäŸã瀺ããŸãïŒ
1. ãã€ã¯ãããã³ããšã³ãã¢ãŒããã¯ãã£
ãã€ã¯ãããã³ããšã³ãã¢ãŒããã¯ãã£ã§ã¯ãç°ãªãããŒã ãã¢ããªã±ãŒã·ã§ã³ã®ç¬ç«ããéšåãéçºã»ãããã€ããŸãã experimental_Scope ã䜿çšããŠåãã€ã¯ãããã³ããšã³ãã®ã³ã³ããã¹ããåé¢ããç«¶åãé²ããåãã€ã¯ãããã³ããšã³ããç¬ç«ããŠåäœã§ããããã«ããŸããäŸãã°ãååã«ã¿ãã°ãã·ã§ããã³ã°ã«ãŒããæ¯æãã²ãŒããŠã§ã€ãªã©ãç°ãªããã€ã¯ãããã³ããšã³ãã«åå²ãããå€§èŠæš¡ãªeã³ããŒã¹ãã©ãããã©ãŒã ãèããŠã¿ãŠãã ãããåãã€ã¯ãããã³ããšã³ãã¯ãç¬èªã®äŸåé¢ä¿ãšèšå®ã§ç¬ç«ããŠéçºã»ãããã€ã§ããŸããexperimental_Scope ã¯ããããã€ã¯ãããã³ããšã³ãã®ã³ã³ããã¹ããšç¶æ
ãåãããŒãžäžã®ä»ã®ãã€ã¯ãããã³ããšã³ããšå¹²æžããªãããã«ããã®ã«åœ¹ç«ã¡ãŸãã
2. A/Bãã¹ã
A/Bãã¹ãã宿œããéãç¹å®ã®ã³ã³ããã¹ãå€ïŒäŸïŒãŠãŒã¶ãŒã«å²ãåœãŠããããã¹ãã°ã«ãŒãïŒã«åºã¥ããŠã³ã³ããŒãã³ããæ©èœã®ç°ãªãããŒãžã§ã³ãã¬ã³ããªã³ã°ãããå ŽåããããŸãã experimental_Scope ã䜿çšããŠåãã¹ãã°ã«ãŒãã®ã³ã³ããã¹ããåé¢ããåãŠãŒã¶ãŒã«å¯ŸããŠæ£ããããŒãžã§ã³ã®ã³ã³ããŒãã³ããã¬ã³ããªã³ã°ãããããã«ä¿èšŒã§ããŸããäŸãã°ããªã³ã©ã€ã³åºåãã©ãããã©ãŒã ã§ãäžéšã®ãŠãŒã¶ãŒã«ç°ãªãåºåã¯ãªãšã€ãã£ãããã¹ããããå ŽåãèããŠã¿ãŠãã ãããexperimental_Scope ã䜿çšããŠåãã¹ãã°ã«ãŒãã®ã³ã³ããã¹ããåé¢ããæ£ããåºåã¯ãªãšã€ãã£ããé©åãªãŠãŒã¶ãŒã«è¡šç€ºãããåã°ã«ãŒãã§åéãããåæããŒã¿ãæ£ç¢ºã§ããããšãä¿èšŒã§ããŸãã
3. ã³ã³ããŒãã³ãã©ã€ãã©ãª
ã³ã³ããŒãã³ãã©ã€ãã©ãªãæ§ç¯ããéãã³ã³ããŒãã³ããèªå·±å®çµåã§ãããã°ããŒãã«ãªã³ã³ããã¹ãå€ã«äŸåããªãããã«ããããã®ã§ãã experimental_Scope ã䜿çšããŠåã³ã³ããŒãã³ãå
ã®ã³ã³ããã¹ããåé¢ããäºæãã¬å¯äœçšãªãã«ç°ãªãã¢ããªã±ãŒã·ã§ã³ã§ã³ã³ããŒãã³ããåå©çšããããããããšãã§ããŸããäŸãã°ããã¿ã³ãå
¥åãã£ãŒã«ããã¢ãŒãã«ãªã©ã®åå©çšå¯èœãªã³ã³ããŒãã³ãã®ã»ãããæäŸããUIã³ã³ããŒãã³ãã©ã€ãã©ãªãèããŠã¿ãŠãã ãããã©ã€ãã©ãªå
ã®ã³ã³ããŒãã³ããèªå·±å®çµåã§ããããã¹ãã¢ããªã±ãŒã·ã§ã³ããã®ã°ããŒãã«ãªã³ã³ããã¹ãå€ã«äŸåããªãããã«ãããã§ããexperimental_Scope ã¯ãåã³ã³ããŒãã³ãå
ã®ã³ã³ããã¹ããåé¢ããããã«äœ¿çšã§ããäºæãã¬å¯äœçšãªãã«ç°ãªãã¢ããªã±ãŒã·ã§ã³ã§ã³ã³ããŒãã³ããåå©çšããããããŸãã
4. ã³ã³ããã¹ãæŽæ°ã®ãã现ããå¶åŸ¡
æ·±ããã¹ããããã³ã³ããŒãã³ããã³ã³ããã¹ãå€ã賌èªããŠããããã³ã³ããã¹ãã®ç¹å®ã®éšåã倿Žããããšãã«ã®ã¿åã¬ã³ããªã³ã°ããå¿
èŠãããã·ããªãªãæ³åããŠã¿ãŠãã ããã experimental_Scope ããªããšãã³ã³ããã¹ããžã®ã©ããªæŽæ°ããã³ã³ããã¹ãã®é¢é£éšåã倿ŽãããŠããªããŠãã³ã³ããŒãã³ãã®åã¬ã³ããªã³ã°ãåŒãèµ·ãããŸãã experimental_Scope ã䜿çšãããšãã³ã³ããã¹ããåé¢ããå¿
èŠãªå Žåã«ã®ã¿åã¬ã³ããªã³ã°ãããªã¬ãŒããŠããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸããç°ãªããã£ãŒããããŒãã«ãããŒã¿ã®ç°ãªãåŽé¢ã衚瀺ããè€éãªããŒã¿å¯èŠåããã·ã¥ããŒããèããŠã¿ãŠãã ãããããŒã¿å€æŽã®åœ±é¿ãåãããã£ãŒããããŒãã«ã ããåã¬ã³ããªã³ã°ãããå¿
èŠããããããã·ã¥ããŒãã®æ®ãã®éšåã¯å€æŽãããªããŸãŸã§ããexperimental_Scope ã¯ãã³ã³ããã¹ããåé¢ããå¿
èŠãªå Žåã«ã®ã¿åã¬ã³ããªã³ã°ãããªã¬ãŒããããã©ãŒãã³ã¹ãåäžãããã¹ã ãŒãºãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãç¶æããããšãå¯èœã«ããŸãã
experimental_Scope ã䜿çšããããã®ãã¹ããã©ã¯ãã£ã¹
experimental_Scope ã广çã«äœ¿çšããããã«ã以äžã®ãã¹ããã©ã¯ãã£ã¹ãèæ
®ããŠãã ããïŒ
- ã¹ã³ãŒãå¢çã®ç¹å®ïŒ ã¢ããªã±ãŒã·ã§ã³ãæ³šææ·±ãåæããã¹ã³ãŒãåé¢ãæãå©çãããããé åãç¹å®ããŸããç¬èªã®ã³ã³ããã¹ãèŠä»¶ãæã€ã³ã³ããŒãã³ãããäžèŠãªåã¬ã³ããªã³ã°ãçºçããããã³ã³ããŒãã³ããæ¢ããŠãã ãããæ°ããæ©èœãèšèšããéã«ã¯ããã®æ©èœå
ã§äœ¿çšãããããŒã¿ãšããããã³ã³ããŒãã³ãéã§ã©ã®ããã«å
±æãããããèããŸããããŒã¿ããã®æ©èœã«åºæã§ãããã¢ããªã±ãŒã·ã§ã³ã®ä»ã®éšåãšå
±æããå¿
èŠããªãå Žåã¯ã
experimental_Scopeã䜿çšããŠã³ã³ããã¹ããåé¢ããããšãæ€èšããŠãã ããã - ã³ã³ããã¹ãå€ã®åæåïŒ åé¢ãããã³ã³ããã¹ããé©åã«åæåãããããã«ãåžžã«
initialContextãšinitialValueããããã£ãexperimental_Scopeã³ã³ããŒãã³ãã«æäŸããŠãã ããããããã®ããããã£ãçç¥ãããšãäºæãã¬åäœããšã©ãŒã«ã€ãªããå¯èœæ§ããããŸããã¹ã³ãŒãå ã®ã³ã³ããŒãã³ãã®èŠä»¶ã«åºã¥ããŠãã³ã³ããã¹ãã«é©åãªåæå€ãéžæããããã«ããŠãã ãããåæã³ã³ããã¹ãå€ã«äžè²«ããåœåèŠåã䜿çšãããšãå€ã®ç®çãšæå³ãçè§£ãããããªããããè¯ãç¿æ £ã§ãã - é床ã®äœ¿çšãé¿ããïŒ
experimental_Scopeã¯åŒ·åã§ãããé床ã«äœ¿çšãããšäžèŠãªè€éããçã¿åºããã³ãŒããçè§£ãã«ããããå¯èœæ§ããããŸããã¹ã³ãŒããåé¢ããããã©ãŒãã³ã¹ãåäžãããããšãæ¬åœã«å¿ èŠãªå Žåã«ã®ã¿äœ¿çšããŠãã ãããã¢ããªã±ãŒã·ã§ã³å šäœã§ã³ã³ããã¹ããšç¶æ ãé©åã«ç®¡çãããŠããã°ãç¹å®ã®é åã§ã¹ã³ãŒããåé¢ããå¿ èŠã¯ãªããããããŸãããéèŠãªã®ã¯ãã³ãŒãã®åé¢ãšã³ãŒãã®è€éãã®éã®é©åãªãã©ã³ã¹ãèŠã€ããã¢ããªã±ãŒã·ã§ã³ã®ä¿å®æ§ãæãªãããšãªãããã©ãŒãã³ã¹ãåäžãããããšã§ãã - 培åºçãªãã¹ãïŒ
experimental_Scopeãå°å ¥ããåŸã¯ãæåŸ éãã«åäœããäºæãã¬å¯äœçšããªãããšã確èªããããã«ãã¢ããªã±ãŒã·ã§ã³ã培åºçã«ãã¹ãããŠãã ãããAPIãå®éšçã§ããã倿Žãããå¯èœæ§ããããããããã¯ç¹ã«éèŠã§ããåé¢ãããã¹ã³ãŒãã®æ©èœãæ€èšŒããããã«ãåäœãã¹ããšçµ±åãã¹ããèšè¿°ããŠãã ãããæ£åžžç³»ãšç°åžžç³»ã®äž¡æ¹ããã¹ããããã¹ãŠã®ç¶æ³ã§ã¹ã³ãŒããæåŸ éãã«åäœããããšã確èªããŠãã ããã - ã³ãŒãã®ææžåïŒ ãªã
experimental_Scopeã䜿çšããŠããã®ããã©ã®ããã«äœ¿çšãããŠããã®ãã説æããããã«ãã³ãŒããæç¢ºã«ææžåããŠãã ãããããã«ãããä»ã®éçºè ãããªãã®ã³ãŒããçè§£ããå°æ¥çã«ä¿å®ããã®ã«åœ¹ç«ã¡ãŸããã³ã¡ã³ããæ³šéã䜿çšããŠãã¹ã³ãŒãã®ç®çãåæã³ã³ããã¹ãå€ãã¹ã³ãŒãå ã®ã³ã³ããŒãã³ãã®æåŸ ãããåäœã説æããŠãã ãããä»ã®éçºè ãæŠå¿µãçè§£ããèªèº«ã®ãããžã§ã¯ãã«é©çšããã®ãå©ããããã«ãç°ãªãç¶æ³ã§ã¹ã³ãŒãã䜿çšããæ¹æ³ã®äŸãæäŸããŠãã ããã
æœåšçãªæ¬ ç¹ãšèæ ®äºé
ãã®å©ç¹ã«ãããããããexperimental_Scope ã«ã¯èæ
®ãã¹ãããã€ãã®æœåšçãªæ¬ ç¹ããããŸãïŒ
- è€éãïŒ
experimental_Scopeãå°å ¥ãããšãç¹ã«ã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ãã®æŠå¿µã«æ £ããŠããªãå Žåãã³ãŒãããŒã¹ã«è€éããå ããå¯èœæ§ããããŸããæ ¹æ¬çãªååãçè§£ããäžèŠãªè€éããå°å ¥ããªãããã«å®è£ ãæ éã«èšç»ããããšãéèŠã§ããã¹ã³ãŒãå¢çãæ éã«æ€èšã»ç®¡çããå¿ èŠããããããéçºããã»ã¹äžã«è¿œå ã®èšèšäžã®èæ ®ãå¿ èŠãšãªããã¢ããªã±ãŒã·ã§ã³ã¢ãŒããã¯ãã£ã®è€éããå¢ãå¯èœæ§ããããŸãã - å®éšçãªæ§è³ªïŒ å®éšçãªAPIãšããŠã
experimental_Scopeã¯å°æ¥ã®Reactã®ããŒãžã§ã³ã§å€æŽãŸãã¯åé€ãããå¯èœæ§ããããŸãã ããã¯ãAPIã倿Žãããå Žåã«ã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ããæºåãå¿ èŠã§ããããšãæå³ããŸãã倿Žãåé€ã¯é倧ãªåé¡ãåŒãèµ·ãããã¢ããªã±ãŒã·ã§ã³ãç Žå£ããå¯èœæ§ããããŸãããããã£ãŠãç¹ã«æ¬çªç°å¢ã§experimental_Scopeã䜿çšããããšããªã¹ã¯ã«èŠåããã©ãããæ éã«è©äŸ¡ããŠãã ããã - ãããã°ã®èª²é¡ïŒ ã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ãã«é¢é£ããåé¡ã®ãããã°ã¯ãç¹ã«
experimental_Scopeã®åäœã«æ £ããŠããªãå Žåãå°é£ã«ãªãããšããããŸãããããã°ããŒã«ããã¯ããã¯ã䜿çšããŠãã³ã³ããã¹ãå€ãã³ã³ããŒãã³ãããªãŒãã©ã®ããã«äŒæããŠããããçè§£ããããšãéèŠã§ããexperimental_Scopeã®äœ¿çšã¯ãç¹ã«ã¢ããªã±ãŒã·ã§ã³ãè€éãªæ§é ãæã€å ŽåãããŒã¿ã®æµãã远跡ãããã°ã®åå ãç¹å®ããããšãããå°é£ã«ããå¯èœæ§ããããŸãã - åŠç¿æ²ç·ïŒ éçºè
ã¯æ°ããAPIãšæŠå¿µãåŠã³ãçè§£ããå¿
èŠããããããã«ã¯æéãšåŽåããããå ŽåããããŸããããŒã ã
experimental_Scopeã广çã«äœ¿çšããæ¹æ³ã«ã€ããŠé©åã«ãã¬ãŒãã³ã°ãããŠããããšã確èªããŠãã ããããã®APIã«æ £ããŠããªãéçºè ã«ãšã£ãŠã¯åŠç¿æ²ç·ãäºæ³ãããŸãã
experimental_Scope ã®ä»£æ¿æ¡
å®éšçãªAPIã®äœ¿çšã«ãããããããå ŽåãReactã«ã¯ã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ãã«å¯Ÿãã代æ¿ã¢ãããŒãããããŸãïŒ
- ã³ã³ããžã·ã§ã³ïŒ ã³ã³ããžã·ã§ã³ã䜿çšããŠãããŒã¿ãšããžãã¯ãã³ã³ããŒãã³ãããªãŒã«æç€ºçã«æž¡ããŸããããã«ãããã³ã³ããã¹ãã®å¿ èŠæ§ããªããªããããŒã¿ãããŒããã现ããå¶åŸ¡ã§ããŸããããŒã¿ãã³ã³ããŒãã³ãããªãŒã«æž¡ãããšã§ãåã³ã³ããŒãã³ããå¿ èŠãªããŒã¿ã®ã¿ãåãåãããã«ãªããäžèŠãªåã¬ã³ããªã³ã°ã®ãªã¹ã¯ãæžãããããã©ãŒãã³ã¹ãåäžãããŸãã
- Render PropsïŒ Render Propsã䜿çšããŠãã³ã³ããŒãã³ãéã§ããžãã¯ãšããŒã¿ãå ±æããŸããããã«ãããç°ãªãããŒã¿ãæ¯ãèãã§ã«ã¹ã¿ãã€ãºã§ããåå©çšå¯èœãªã³ã³ããŒãã³ããäœæã§ããŸããã³ã³ããŒãã³ãã«ã«ã¹ã¿ã ã¬ã³ããªã³ã°ããžãã¯ãæ³šå ¥ããæ¹æ³ãæäŸããããé«ãæè»æ§ãšåå©çšæ§ãå¯èœã«ããŸãããã®ãã¿ãŒã³ã¯é«éã³ã³ããŒãã³ãïŒHOCïŒãã¿ãŒã³ã«äŒŒãŠããŸãããããã©ãŒãã³ã¹ãšåå®å šæ§ã®é¢ã§ããã€ãã®å©ç¹ããããŸãã
- ã«ã¹ã¿ã ããã¯ïŒ ã«ã¹ã¿ã ããã¯ãäœæããŠãç¶æ ãšããžãã¯ãã«ãã»ã«åããŸããããã«ãããã°ããŒãã«ãªã³ã³ããã¹ãã«äŸåããããšãªããè€æ°ã®ã³ã³ããŒãã³ãã§åãç¶æ ãšããžãã¯ãåå©çšã§ããŸããã«ã¹ã¿ã ããã¯å ã«ç¶æ ãšããžãã¯ãã«ãã»ã«åããããšã§ãã³ãŒãã®ã¢ãžã¥ãŒã«æ§ãšãã¹ãæ§ãåäžããŸãããŸããã³ã³ããŒãã³ãããè€éãªããžãã¹ããžãã¯ãæœåºããããããçè§£ãããããä¿å®ããããããããšãã§ããŸãã
- ç¶æ
管çã©ã€ãã©ãªïŒRedux, Zustand, JotaiïŒïŒ ãããã®ã©ã€ãã©ãªã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ã®ã¹ã³ãŒããšãããŒãå¶åŸ¡ããã®ã«åœ¹ç«ã€ã°ããŒãã«ãªç¶æ
管çãœãªã¥ãŒã·ã§ã³ãæäŸããŸããããå
ç¢ã§ã¹ã±ãŒã©ãã«ãªãœãªã¥ãŒã·ã§ã³ãå¿
èŠãªå Žåããããã¯
experimental_Scopeã®è¯ãä»£æ¿æ¡ãšãªãåŸãŸããã¢ã¯ã·ã§ã³ããã£ã¹ãããããç¶æ ã®å€æŽã賌èªããããã®ã¡ã«ããºã ãšãšãã«ãã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã管çããããã®äžå€®éæš©çãªã¹ãã¢ãæäŸããŸããããã«ãããè€éãªç¶æ ã®ç®¡çãç°¡çŽ åãããããããããªãªã³ã°ã®å¿ èŠæ§ãæžå°ããŸãã
çµè«
Reactã® experimental_Scope Isolation Boundaryã¯ãè€éãªReactã¢ããªã±ãŒã·ã§ã³ã§ã¹ã³ãŒãã³ã³ãã€ã³ã¡ã³ãã管çããããã®åŒ·åãªã¡ã«ããºã ãæäŸããŸããåé¢ãããã¹ã³ãŒããäœæããããšã§ãããã©ãŒãã³ã¹ãåäžãããã³ãŒãæ§æãæ¹åããç«¶åã®ãªã¹ã¯ãæžããããšãã§ããŸããAPIã¯ãŸã å®éšçã§ããããã®æœåšçãªå©ç¹ãæ¢æ±ãã䟡å€ã¯ãããŸãããããžã§ã¯ãã§ experimental_Scope ãæ¡çšããåã«ãæœåšçãªæ¬ ç¹ãšä»£æ¿æ¡ãæ
éã«æ€èšããããšãå¿ããªãã§ãã ãããReactãé²åãç¶ããã«ã€ããŠãã¹ã³ãŒã管çãšã³ã³ããã¹ãå¶åŸ¡ã«ããããããªã鲿©ãæåŸ
ãããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã®å
ç¢ã§ä¿å®æ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ã容æã«ãªãã§ãããã
æçµçã«ãã¹ã³ãŒã管çã®æåã®ã¢ãããŒãã¯ãã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®ããŒãºã«äŸåããŸããç°ãªãã¢ãããŒãéã®ãã¬ãŒããªããæ éã«æ€èšãããããžã§ã¯ãã®èŠä»¶ãšããŒã ã®å°éç¥èã«æãé©ãããã®ãéžæããŠãã ãããã¢ããªã±ãŒã·ã§ã³ãæé·ããã«ã€ããŠãã³ãŒãã宿çã«ã¬ãã¥ãŒããã³ãªãã¡ã¯ã¿ãªã³ã°ããä¿å®æ§ãšã¹ã±ãŒã©ããªãã£ãç¶æããããã«ããŠãã ããã