experimental_useCacheã§Reactã®æé«ã®ããã©ãŒãã³ã¹ãåŒãåºãããã£ãã·ã¥ã¢ã¯ã»ã¹åæã§æ·±ãæŽå¯ãåŸãŸããããç£èŠãæé©åãè¡ããäžçäžã®ãŠãŒã¶ãŒã«è¶ é«éãªäœéšãæäŸããŸãã
React experimental_useCacheã®ããã©ãŒãã³ã¹ç£èŠïŒãã£ãã·ã¥ã¢ã¯ã»ã¹åæ
Reactã®ãšã³ã·ã¹ãã ã¯åžžã«é²åããŠãããéçºè
ãããéããããå¹ççã§ãããé
åçãªãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãæ§ç¯ããã®ã«åœ¹ç«ã€æ°ããæ©èœãAPIãç»å ŽããŠããŸããçŸåšå®é𿮵éã«ãããã®ãããªæ©èœã®1ã€ãexperimental_useCacheã§ãããã®ããã¯ã¯ãReactã¢ããªã±ãŒã·ã§ã³å
ã§ãã£ãã·ã³ã°ã管çããæŽ»çšããããã®åŒ·åãªã¡ã«ããºã ãæäŸããŸããããããåã«ãã£ãã·ã³ã°ãå®è£
ããã ãã§ã¯äžååã§ãããã®ããã©ãŒãã³ã¹äžã®å©ç¹ãæå€§åããããã«ã¯ããã£ãã·ã¥ãã©ã®ããã«ã¢ã¯ã»ã¹ãããå©çšãããŠããããçè§£ããããšãäžå¯æ¬ ã§ããããã§ãã£ãã·ã¥ã¢ã¯ã»ã¹åæãéèŠã«ãªããŸãã
experimental_useCacheãçè§£ãã
åæã«å
¥ãåã«ãexperimental_useCacheãäœã§ãããã©ã®ããã«æ©èœããã®ããç°¡åã«æ¯ãè¿ã£ãŠã¿ãŸãããããã®ããã¯ã䜿çšãããšãã³ã¹ãã®ãããæäœã®çµæããã£ãã·ã¥ã§ããŸããããã«ãããåãããŒã¿ã«äŸåããåŸç¶ã®ã¬ã³ããªã³ã°ããæäœãåå®è¡ãã代ããã«ãã£ãã·ã¥ããããŒã¿ãååŸã§ããããã«ãªããŸããããã¯ãç¹ã«eã³ããŒã¹ãã©ãããã©ãŒã ãã³ã³ãã³ã管çã·ã¹ãã ã®ãããªããŒã¿éçŽçãªã·ããªãªã«ãããŠããµãŒããŒã®è² è·ã倧å¹
ã«åæžããã¢ããªã±ãŒã·ã§ã³ã®å¿çæ§ãåäžãããããšãã§ããŸãã
experimental_useCacheã®åºæ¬çãªäœ¿çšæ³ã¯æ¬¡ã®ãšããã§ãïŒ
import { experimental_useCache } from 'react';
function MyComponent() {
const cachedData = experimental_useCache(expensiveOperation);
return (
// cachedDataã䜿çšããŠã¬ã³ããªã³ã°
);
}
ããã§expensiveOperationã¯ãããŒã¿ããŒã¹ããã®ããŒã¿ååŸãè€éãªèšç®ã®å®è¡ãªã©ãæœåšçã«ã³ã¹ãã®ãããã¿ã¹ã¯ãå®è¡ãã颿°ã§ããexperimental_useCacheããã¯ã¯ããã®é¢æ°ãç¹å®ã®å
¥åã»ããïŒReactã«ãã£ãŠæé»çã«ç®¡çãããïŒã«å¯ŸããŠäžåºŠã ãå®è¡ãããããšãä¿èšŒããŸããåã颿°ã§experimental_useCacheãåŸç¶ã§åŒã³åºããšããã£ãã·ã¥ãããçµæãè¿ãããŸãã
experimental_useCacheã®å©ç¹
- ããã©ãŒãã³ã¹ã®åäžïŒ ã³ã¹ãã®ãããæäœãç¹°ãè¿ãå®è¡ããå¿ èŠæ§ãæžãããã¬ã³ããªã³ã°æéãççž®ããŸãã
- ãµãŒããŒè² è·ã®è»œæžïŒ ãµãŒããŒãžã®ãªã¯ãšã¹ãæ°ãæå°éã«æããä»ã®ã¿ã¹ã¯ã®ããã«ãªãœãŒã¹ãè§£æŸããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åŒ·åïŒ ããã¹ã ãŒãºã§å¿çæ§ã®é«ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸãã
ãã£ãã·ã¥ã¢ã¯ã»ã¹åæã®éèŠæ§
experimental_useCacheã¯ãã£ãã·ã³ã°ãå®è£
ãã䟿å©ãªæ¹æ³ãæäŸããŸããããã£ãã·ã¥ãã©ãã»ã©å¹æçã«å©çšãããŠããããçè§£ããããšãäžå¯æ¬ ã§ããé©åãªç£èŠããªããã°ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãããã«æé©åããæ©äŒãéããŠãããããããŸããããã£ãã·ã¥ã¢ã¯ã»ã¹åæã¯ã以äžã®ãããªè²ŽéãªæŽå¯ãæäŸããŸãïŒ
- ãã£ãã·ã¥ãããçïŒ ããŒã¿ãå ã®ãœãŒã¹ãããã§ãããããã®ã§ã¯ãªãããã£ãã·ã¥ããååŸãããå²åããããçãé«ãã»ã©ããã£ãã·ã³ã°ã广çã§ããããšã瀺ããŸãã
- ãã£ãã·ã¥ãã¹çïŒ ããŒã¿ããã£ãã·ã¥ã«èŠã€ããããå ã®ãœãŒã¹ãããã§ããããå¿ èŠãããå²åããã¹çãé«ãå Žåã¯ããã£ãã·ã³ã°æŠç¥ã®èª¿æŽãå¿ èŠãããããŸããã
- ãã£ãã·ã¥ãšãã¯ã·ã§ã³çïŒ æ°ããããŒã¿ã®ããã®ã¹ããŒã¹ã確ä¿ããããã«ãã¢ã€ãã ããã£ãã·ã¥ããåé€ãããé »åºŠãé床ã®ãšãã¯ã·ã§ã³ã¯ãã£ãã·ã¥ãã¹ã®å¢å ã«ã€ãªããå¯èœæ§ããããŸãã
- ãã£ãã·ã¥ã¬ã€ãã³ã·ïŒ ãã£ãã·ã¥ããããŒã¿ãååŸããã®ã«ãããæéãã¬ã€ãã³ã·ãé«ããšããã£ãã·ã³ã°ã®å©ç¹ãçžæ®ºãããå¯èœæ§ããããŸãã
- ãã£ãã·ã¥ãµã€ãºïŒ ãã£ãã·ã¥ã«ãã£ãŠäœ¿çšãããŠããã¡ã¢ãªã®éã倧ããªãã£ãã·ã¥ã¯å€§éã®ãªãœãŒã¹ãæ¶è²»ããå šäœã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
ãããã®ã¡ããªã¯ã¹ãåæããããšã§ããã£ãã·ã³ã°æŠç¥ãæ¹åã§ããé åãç¹å®ããå€§å¹ ãªããã©ãŒãã³ã¹åäžã«ã€ãªããããšãã§ããŸãã
ãã£ãã·ã¥åæã«ãããã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã®ã¢ããªã±ãŒã·ã§ã³ãéçºããå ŽåããŠãŒã¶ãŒã®å°ççååžãèæ
®ããããšãéèŠã§ãããã£ãã·ã¥ã¢ã¯ã»ã¹åæã¯ãå°åã«ãã£ãŠãã£ãã·ã³ã°ã®ããã©ãŒãã³ã¹ãã©ã®ããã«ç°ãªãããçè§£ããã®ã«åœ¹ç«ã¡ãŸããäŸãã°ããããã¯ãŒã¯ã¬ã€ãã³ã·ãé«ãå°åã®ãŠãŒã¶ãŒã¯ãã¬ã€ãã³ã·ãäœãå°åã®ãŠãŒã¶ãŒãããç©æ¥µçãªãã£ãã·ã³ã°æŠç¥ããããå€ãã®æ©æµãåããå¯èœæ§ããããŸãããã®æ
å ±ã䜿çšããŠãç¹å®ã®å°åã«åãããŠãã£ãã·ã³ã°ããªã·ãŒã調æŽãããã¹ãŠã®ãŠãŒã¶ãŒãå¯èœãªéãæé«ã®äœéšãåŸãããããã«ããããšãã§ããŸããCDNïŒã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒã®ãããªãµãŒãã¹ãexperimental_useCacheãšäœµçšããããšã§ãã°ããŒãã«ãªãã£ãã·ã³ã°ããã现ããå¶åŸ¡ã§ããŸãã
ãã£ãã·ã¥ã¢ã¯ã»ã¹åæã®å®è£
experimental_useCacheã䜿çšããReactã¢ããªã±ãŒã·ã§ã³ã§ãã£ãã·ã¥ã¢ã¯ã»ã¹åæãå®è£
ããã«ã¯ãããã€ãã®ã¢ãããŒãããããŸãïŒ
1. ã«ã¹ã¿ã ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³
æãçŽæ¥çãªã¢ãããŒãã¯ããã£ãã·ã¥ãããããã¹ããã®ä»ã®é¢é£ã¡ããªã¯ã¹ã远跡ããããã«ã³ãŒããæåã§ã€ã³ã¹ãã«ã¡ã³ãåããããšã§ããããã«ã¯ãexperimental_useCacheããã¯ãç¬èªã®ããžãã¯ã§ã©ããããŠããããã®ã€ãã³ããèšé²ããããšãå«ãŸããŸãã
import { experimental_useCache } from 'react';
function trackCacheEvent(type, key) {
// ããã«ãã©ããã³ã°ããžãã¯ãå®è£
// åæãµãŒãã¹ãžã®ããŒã¿éä¿¡ãããŒã«ã«ä¿åãªã©ãèããããŸã
console.log(`Cache ${type}: ${key}`);
}
function useMonitoredCache(fn, key) {
const cachedData = experimental_useCache(fn);
// ç°¡åãªäŸïŒãã¹ãŠã®ã¢ã¯ã»ã¹ã远跡ããŸãããæ¢åã®ãã£ãã·ã¥ã確èªããããã«æ¹åã
// æåã¯ãã¹ã®ã¿ã远跡ããã®ãè¯ãã§ãããã
trackCacheEvent('hit', key);
return cachedData;
}
function MyComponent(props) {
const data = useMonitoredCache(() => fetchData(props.id), `data-${props.id}`);
return (
// dataã䜿çšããŠã¬ã³ããªã³ã°
);
}
ãã®ã¢ãããŒãã¯é«ãæè»æ§ãæäŸããé¢å¿ã®ããã¡ããªã¯ã¹ãæ£ç¢ºã«è¿œè·¡ã§ããŸããããããã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ãæ£ç¢ºã§ãããããã©ãŒãã³ã¹ã®ãªãŒããŒããããå°å ¥ããªãããšã確èªããå¿ èŠããããããæéãšæéããããããšã©ãŒãçºçãããããªãå¯èœæ§ããããŸãã
ã«ã¹ã¿ã ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ãå®è£ ããéã¯ã以äžã®ç¹ãèæ ®ããŠãã ããïŒ
- é©åãªåæããã¯ãšã³ããéžæããïŒ åéããããŒã¿éãåŠçã§ããå¿ èŠãªã¬ããŒãæ©èœãæäŸãããµãŒãã¹ããã©ãããã©ãŒã ãéžæããŸããéžæè¢ã«ã¯ãGoogle AnalyticsãMixpanelãSegmentãã«ã¹ã¿ã ãã®ã³ã°ãœãªã¥ãŒã·ã§ã³ãªã©ããããŸãã
- ããã©ãŒãã³ã¹ãžã®åœ±é¿ãæå°éã«æããïŒ ãã©ããã³ã°ããžãã¯ãé¡èãªããã©ãŒãã³ã¹ã®ãªãŒããŒããããå°å ¥ããªãããã«ããŸãããã©ããã³ã°é¢æ°å ã§ã³ã¹ãã®ãããæäœãå®è¡ããã®ã¯é¿ããŠãã ããã
- ãšã©ãŒãã³ããªã³ã°ãå®è£ ããïŒ ãã©ããã³ã°ããã»ã¹äžã«çºçããå¯èœæ§ã®ãããšã©ãŒãé©åã«åŠçããã¢ããªã±ãŒã·ã§ã³ã®æ©èœã«åœ±é¿ãäžããªãããã«ããŸãã
2. æ¢åã®ç£èŠããŒã«ã®æŽ»çš
Reactã¢ããªã±ãŒã·ã§ã³ã®ãã£ãã·ã¥ã¢ã¯ã»ã¹åæã远跡ããããã«äœ¿çšã§ããæ¢åã®ç£èŠããŒã«ãããã€ããããŸãããããã®ããŒã«ã¯ãå€ãã®å Žåããã£ãã·ã³ã°ã¡ããªã¯ã¹ã®çµã¿èŸŒã¿ãµããŒããæäŸããããŒã¿ã®åéãšåæã®ããã»ã¹ãç°¡çŽ åã§ããŸãã
ãã®ãããªããŒã«ã®äŸã¯æ¬¡ã®ãšããã§ãïŒ
- React ProfilerïŒ Reactã®çµã¿èŸŒã¿ãããã¡ã€ã©ã¯ããã£ãã·ã¥ããã®ããŒã¿ååŸã«è²»ããããæéãªã©ãã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ã«é¢ããæŽå¯ãæäŸããŸãããã£ãã·ã¥ã®ããã/ãã¹çãçŽæ¥å ¬éããããã§ã¯ãããŸãããããã£ãã·ã¥ããŒã¿ã«å€§ããäŸåããŠããããããªãæé©åã®æ©æµãåããå¯èœæ§ã®ããã³ã³ããŒãã³ããç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
- ãã©ãŠã¶éçºè ããŒã«ïŒ ãã©ãŠã¶ã®éçºè ããŒã«ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ãè¡ã£ããããã¯ãŒã¯ãªã¯ãšã¹ããæ€æ»ããã©ã®ãªã¯ãšã¹ãããã£ãã·ã¥ããæäŸãããŠããããç¹å®ã§ããŸããããã«ããããã£ãã·ã¥ãããçã®åºæ¬çãªçè§£ãåŸãããŸãã
- ããã©ãŒãã³ã¹ç£èŠãµãŒãã¹ïŒäŸïŒSentry, New RelicïŒïŒ ãããã®ãµãŒãã¹ã¯ãã«ã¹ã¿ã ã¡ããªã¯ã¹ã®è¿œè·¡æ©èœãå«ããããå æ¬çãªããã©ãŒãã³ã¹ç£èŠæ©èœãæäŸã§ããŸãããããã®ãµãŒãã¹ã䜿çšããŠããã£ãã·ã¥ãããããã¹ããã®ä»ã®é¢é£ã¡ããªã¯ã¹ã远跡ã§ããŸãã
3. experimental_useCacheããã¯ã®ãããã·åïŒäžçŽïŒ
ããé«åºŠãªã·ããªãªã§ã¯ãexperimental_useCacheããã¯ãã©ãããããããã·é¢æ°ãé«éã³ã³ããŒãã³ããäœæã§ããŸããããã«ãããããã¯ãžã®åŒã³åºããã€ã³ã¿ãŒã»ãããããã£ãã·ã¥ã¢ã¯ã»ã¹ã€ãã³ãã远跡ããããã®ç¬èªã®ããžãã¯ã泚å
¥ã§ããŸãããã®ã¢ãããŒãã¯é«åºŠãªå¶åŸ¡ãšæè»æ§ãæäŸããŸãããReactã®å
éšæ§é ã«é¢ããããæ·±ãçè§£ãå¿
èŠãšããŸãã
import { experimental_useCache } from 'react';
function withCacheAnalytics(WrappedComponent) {
return function WithCacheAnalytics(props) {
const monitoredUseCache = (fn) => {
const key = fn.name || 'anonymousFunction'; // ãŸãã¯ãããæå³ã®ããããŒãçæ
const cachedData = experimental_useCache(fn);
// ããã§ãã£ãã·ã¥ã¢ã¯ã»ã¹ã远跡
trackCacheEvent('hit', key);
return cachedData;
};
return ;
};
}
// 䜿çšäŸïŒ
function MyComponent(props) {
const data = props.useCache(() => fetchData(props.id));
return (
// dataã䜿çšããŠã¬ã³ããªã³ã°
);
}
const MyComponentWithAnalytics = withCacheAnalytics(MyComponent);
ãã®äŸã¯ãå¥ã®ã³ã³ããŒãã³ããã©ãããã倿ŽãããããŒãžã§ã³ã®experimental_useCacheããã¯ãæäŸããé«éã³ã³ããŒãã³ããäœæããæ¹æ³ã瀺ããŠããŸããmonitoredUseCache颿°ã¯ããã¯ãžã®åŒã³åºããã€ã³ã¿ãŒã»ãããããã£ãã·ã¥ã¢ã¯ã»ã¹ã€ãã³ãã远跡ããŸãã
ãã£ãã·ã¥ã¢ã¯ã»ã¹ããŒã¿ã®åæ
ãã£ãã·ã¥ã¢ã¯ã»ã¹ããŒã¿ãåéããã¡ã«ããºã ãå®è£ ããããæ¬¡ã®ã¹ãããã¯ããŒã¿ãåæãããã£ãã·ã³ã°æŠç¥ãæ¹åã§ããé åãç¹å®ããããšã§ããããã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- é«ãã¹é åã®ç¹å®ïŒ ã¢ããªã±ãŒã·ã§ã³ã®äžã§äžè²«ããŠãã£ãã·ã¥ãã¹ãçºçããç¹å®ã®éšåãçªãæ¢ããŸãããããã¯æé©åã®ææååè£ã§ãã
- ãŠãŒã¶ãŒè¡åãšã®çžé¢ïŒ ãã£ãã·ã¥ã®ããã©ãŒãã³ã¹ããŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ãšã©ã®ããã«é¢é£ããŠããããçè§£ããŸããäŸãã°ãæ°æ©èœã®ãªãªãŒã¹åŸã«ãã£ãã·ã¥ãã¹ãæ¥å¢ããå Žåããã®æ©èœã®ãã£ãã·ã³ã°æŠç¥ã«åé¡ãããããšã瀺ããŠããå¯èœæ§ããããŸãã
- ãã£ãã·ã¥ãã©ã¡ãŒã¿ã®å®éšïŒ ããŸããŸãªãã£ãã·ã¥æ§æïŒäŸïŒãã£ãã·ã¥ãµã€ãºããšãã¯ã·ã§ã³ããªã·ãŒïŒããã¹ãããŠãã¢ããªã±ãŒã·ã§ã³ã«æé©ãªèšå®ãèŠã€ããŸãã
- å°ååæïŒ ããŸããŸãªå°ççãã±ãŒã·ã§ã³ã«ããããã£ãã·ã³ã°ã®æå¹æ§ã倿ããŸããã°ããŒãã«ãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãCDNãå°ååºæã®ãã£ãã·ã³ã°æŠç¥ãæ€èšããŸãã
å®çšçãªæŽå¯ãšæé©åæŠç¥
ãã£ãã·ã¥ã¢ã¯ã»ã¹ããŒã¿ã®åæã«åºã¥ããŠãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžãããããã®ããŸããŸãªæé©åæŠç¥ãå®è£ ã§ããŸããããã€ãã®äŸã次ã«ç€ºããŸãïŒ
- ãã£ãã·ã¥ãµã€ãºã®å¢å ïŒ ãã£ãã·ã¥ãé »ç¹ã«å®¹éã«éããŠããå Žåããµã€ãºãå¢ããããšã§ãã£ãã·ã¥ãã¹ãæžããã®ã«åœ¹ç«ã¡ãŸãããã ãããã倧ããªãã£ãã·ã¥ã«é¢é£ããã¡ã¢ãªã®ãªãŒããŒãããã«æ³šæããŠãã ããã
- ãã£ãã·ã¥ãšãã¯ã·ã§ã³ããªã·ãŒã®èª¿æŽïŒ ã¢ããªã±ãŒã·ã§ã³ã®äœ¿çšãã¿ãŒã³ã«æãé©ããããªã·ãŒãèŠã€ããããã«ãããŸããŸãªãšãã¯ã·ã§ã³ããªã·ãŒïŒäŸïŒLeast Recently Used, Least Frequently UsedïŒã詊ããŸãã
- ãã£ãã·ã¥ã®äºåãŠã©ãŒã ã¢ããïŒ ã¢ããªã±ãŒã·ã§ã³ã®èµ·åæãã¢ã€ãã«æéã«é »ç¹ã«ã¢ã¯ã»ã¹ãããããŒã¿ããã£ãã·ã¥ã«äºåã«å ¥åããŠãåæããã©ãŒãã³ã¹ãåäžãããŸãã
- CDNã®äœ¿çšïŒ ãã£ãã·ã¥ãããããŒã¿ãäžçäžã®è€æ°ã®ãµãŒããŒã«åæ£ãããŠãç°ãªãå°åã®ãŠãŒã¶ãŒã®ã¬ã€ãã³ã·ãåæžããŸãã
- ããŒã¿ãã§ããã®æé©åïŒ ããŒã¿ãã§ããæäœãå¯èœãªéãå¹ççã§ããããšã確èªããŸããäžèŠãªããŒã¿ããã§ããããããåé·ãªãªã¯ãšã¹ããå®è¡ãããããªãã§ãã ããã
- ã¡ã¢åã®æŽ»çšïŒ ã¡ã¢åæè¡ã䜿çšããŠãã³ã¹ãã®ãããèšç®ã倿ã®çµæããã£ãã·ã¥ããŸãã
- ã³ãŒãåå²ïŒ ã¢ããªã±ãŒã·ã§ã³ãããªã³ããã³ãã§ããŒãã§ããããå°ããªãã³ãã«ã«åå²ããŸããããã«ãããåæããŒãæéãççž®ããå šäœã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
ã·ããªãªäŸïŒeã³ããŒã¹ã®è£œåããŒãž
è£œåæ å ±ãã¬ãã¥ãŒãé¢é£è£œåã衚瀺ããeã³ããŒã¹ã®è£œåããŒãžãèããŠã¿ãŸãããããã®ããŒãžã«ã¯å€ãã®å Žåãè€æ°ã®ããŒã¿ãã§ããæäœãå«ãŸããããããã£ãã·ã³ã°ã®è¯ãåè£ãšãªããŸãã
ãã£ãã·ã³ã°ããªãå ŽåããŠãŒã¶ãŒã補åããŒãžã蚪ãããã³ã«ãã¢ããªã±ãŒã·ã§ã³ã¯ããŒã¿ããŒã¹ããè£œåæ å ±ãã¬ãã¥ãŒãé¢é£è£œåãååŸããå¿ èŠããããŸããããã¯ãç¹ã«äººæ°ã®ãã補åã®å ŽåãæéãããããªãœãŒã¹ã倧éã«æ¶è²»ããå¯èœæ§ããããŸãã
experimental_useCacheã䜿çšããããšã§ããããã®ããŒã¿ãã§ããæäœã®çµæããã£ãã·ã¥ããããŒã¿ããŒã¹ãžã®ãªã¯ãšã¹ãæ°ãæžãããããŒãžã®ããŒãæéãæ¹åã§ããŸããäŸãã°ã補åæ
å ±ãç¹å®ã®æéïŒäŸïŒ1æéïŒãã£ãã·ã¥ããã¬ãã¥ãŒãããçãæéïŒäŸïŒ15åïŒãã£ãã·ã¥ããããšã§ãã¬ãã¥ãŒãæ¯èŒçæ°ããç¶æ
ã«ä¿ãããããã«ã§ããŸãã
ããããåã«ãã£ãã·ã³ã°ãå®è£ ããã ãã§ã¯ååã§ã¯ãããŸãããããŒãžã®ããŸããŸãªéšåã®ãã£ãã·ã¥ã¢ã¯ã»ã¹çãç£èŠããå¿ èŠããããŸããäŸãã°ãè£œåæ å ±ã¯é »ç¹ã«ã¢ã¯ã»ã¹ãããŠããã®ã«å¯Ÿããã¬ãã¥ãŒã¯ããã»ã©ã¢ã¯ã»ã¹ãããŠããªãããšãããããããããŸãããããã¯ãè£œåæ å ±ã®ãã£ãã·ã¥æå¹æéãé·ãããã¬ãã¥ãŒã®æå¹æéãçãããããšãã§ããããšã瀺åããŠããŸãããŸãããã£ãã·ã¥ãã¹ãç¹å®ã®å°ççå°åã«éäžããŠããããšãçºèŠãããã®å°åã§ã®CDNã«ãã¬ããžã®æ¹åãå¿ èŠã§ããããšã瀺ããŠããå ŽåããããŸãã
experimental_useCacheãšåæã䜿çšããããã®ãã¹ããã©ã¯ãã£ã¹
experimental_useCacheãšãã£ãã·ã¥ã¢ã¯ã»ã¹åæã䜿çšããéã«çæãã¹ããã¹ããã©ã¯ãã£ã¹ãããã€ã玹ä»ããŸãïŒ
- ã·ã³ãã«ã«å§ããïŒ ãŸãã¯æãã³ã¹ãã®ãããæäœã®ã¿ããã£ãã·ã¥ããå¿ èŠã«å¿ããŠåŸã ã«ãã£ãã·ã³ã°æŠç¥ãæ¡å€§ããŸãã
- 宿çã«ç£èŠããïŒ ãã£ãã·ã¥ã¢ã¯ã»ã¹ã¡ããªã¯ã¹ãç¶ç¶çã«ç£èŠããæœåšçãªåé¡ãæé©åã®æ©äŒãç¹å®ããŸãã
- 培åºçã«ãã¹ãããïŒ ããŸããŸãªè² è·æ¡ä»¶äžã§ãã£ãã·ã³ã°æŠç¥ããã¹ãããæåŸ ã©ããã«æ©èœããããšã確èªããŸãã
- ãã£ãã·ã³ã°æŠç¥ãææžåããïŒ ã©ã®ããŒã¿ããã£ãã·ã¥ãããŠããããã©ã®ãããã®æéãã£ãã·ã¥ãããŠãããããããŠãã®çç±ãªã©ããã£ãã·ã³ã°æŠç¥ãæç¢ºã«ææžåããŸãã
- ããŒã¿ã®å€ããèæ ®ããïŒ ããã©ãŒãã³ã¹ãšããŒã¿ã®å€ãã®ãã¬ãŒããªããè©äŸ¡ããŸãããã£ãã·ã³ã°æŠç¥ããŠãŒã¶ãŒã«å€ãæ å ±ã衚瀺ãããçµæã«ãªããªãããã«ããŸãã
- ããŒã广çã«äœ¿çšããïŒ ãã£ãã·ã¥ããŒããŠããŒã¯ã§æå³ã®ãããã®ã§ããããšã確èªããŸããããã«ããããã£ãã·ã¥ã®è¡çªãé¿ããæ£ããããŒã¿ããã£ãã·ã¥ããååŸãããããšãä¿èšŒã§ããŸããç«¶åãé¿ããããã«ããŒã«åå空éã䜿çšããããšãæ€èšããŠãã ããã
- ãã£ãã·ã¥ç¡å¹åã®èšç»ãç«ãŠãïŒ ããŒã¿ã倿Žããããšãã«ãã£ãã·ã¥ãç¡å¹åããæŠç¥ãç«ãŠãŸããããã«ã¯ãæåã§ãã£ãã·ã¥ãç¡å¹åãããããã£ãã·ã³ã°ã©ã€ãã©ãªãæäŸãããã£ãã·ã¥ç¡å¹åã¡ã«ããºã ã䜿çšããããšãå«ãŸããŸãã
- ãã©ã€ãã·ãŒãå°éããïŒ ãŠãŒã¶ãŒåºæã®ããŒã¿ããã£ãã·ã¥ããéã¯ããã©ã€ãã·ãŒã®åé¡ã«æ³šæããŠãã ãããå¿ èŠãªããŒã¿ã®ã¿ããã£ãã·ã¥ããé©çšãããæ³åŸãèŠå¶ã«åŸã£ãŠãŠãŒã¶ãŒã®ãã©ã€ãã·ãŒãä¿è·ããŠããããšã確èªããŸãã
çµè«
experimental_useCacheã¯ãReactã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžããã匷åãªæ¹æ³ãæäŸããŸãããã£ãã·ã¥ã¢ã¯ã»ã¹çãæ³šææ·±ãç£èŠããé©åãªæé©åæŠç¥ãå®è£
ããããšã§ã倧å¹
ãªããã©ãŒãã³ã¹åäžãå®çŸããããè¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããŸããäžçäžã®ãªãŒãã£ãšã³ã¹åãã«çã«æé©åãããã¢ããªã±ãŒã·ã§ã³ãäœæããã«ã¯ããŠãŒã¶ãŒã®å Žæããããã¯ãŒã¯ã¬ã€ãã³ã·ãšãã£ãã°ããŒãã«ãªèŠå ãèæ
®ããããšãå¿ããªãã§ãã ãããä»ã®å®éšçãªAPIãšåæ§ã«ãReactã®å°æ¥ã®ãªãªãŒã¹ã§ã®å€æŽã®å¯èœæ§ã«åããŠãããŠãã ããã
ãã£ãã·ã¥ã¢ã¯ã»ã¹åæãåãå ¥ããããšã§ãåã«ãã£ãã·ã³ã°ãå®è£ ããã ãã§ãªãããã£ãã·ã¥ãã©ã®ããã«äœ¿çšãããŠããããçã«çè§£ãå§ããããšãã§ããŸããããã«ãããããã©ãŒãã³ã¹ãã¹ã±ãŒã©ããªãã£ããŠãŒã¶ãŒæºè¶³åºŠã®å€§å¹ ãªåäžã«ã€ãªããããŒã¿é§ååã®æææ±ºå®ãå¯èœã«ãªããŸããèªåã®ã¢ããªã±ãŒã·ã§ã³ã«æé©ãªãã®ãèŠã€ããããã«ãããŸããŸãªãã£ãã·ã³ã°æŠç¥ãåæããŒã«ã詊ãããšãæããªãã§ãã ããããã®åªåã¯ååã«å ±ãããã§ãããã