Reactã¹ã±ãžã¥ãŒã©ã®ã¯ãŒã¯ã«ãŒããæãäžããã¿ã¹ã¯å®è¡å¹çãé«ããæé©åæè¡ãåŠã³ãããã¹ã ãŒãºã§å¿çæ§ã®é«ãã¢ããªãå®çŸããæ¹æ³ã玹ä»ããŸãã
Reactã¹ã±ãžã¥ãŒã©ã®ã¯ãŒã¯ã«ãŒãæé©åïŒã¿ã¹ã¯å®è¡å¹çã®æå€§å
Reactã®ã¹ã±ãžã¥ãŒã©ã¯ãã¹ã ãŒãºã§å¿çæ§ã®é«ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãä¿èšŒããããã«æŽæ°ã管çããåªå é äœãä»ããéèŠãªã³ã³ããŒãã³ãã§ããã¹ã±ãžã¥ãŒã©ã®ã¯ãŒã¯ã«ãŒããã©ã®ããã«åäœããããçè§£ãã广çãªæé©åãã¯ããã¯ãæ¡çšããããšã¯ã髿§èœãªReactã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«äžå¯æ¬ ã§ãããã®å æ¬çãªã¬ã€ãã§ã¯ãReactã¹ã±ãžã¥ãŒã©ããã®ã¯ãŒã¯ã«ãŒããããã³ã¿ã¹ã¯å®è¡å¹çãæå€§åããããã®æŠç¥ã«ã€ããŠæ¢ããŸãã
Reactã¹ã±ãžã¥ãŒã©ãçè§£ãã
Reactã¹ã±ãžã¥ãŒã©ã¯ãFiberã¢ãŒããã¯ãã£ãšããŠãç¥ãããæŽæ°ã管çãåªå é äœãä»ããããã®Reactã®åºç€ãšãªãã¡ã«ããºã ã§ããFiber以åã¯ãReactã¯åæçãªå·®åæ€åºããã»ã¹ã䜿çšããŠããŸããããããã¯ã¡ã€ã³ã¹ã¬ããããããã¯ããç¹ã«è€éãªã¢ããªã±ãŒã·ã§ã³ã§ããã¡ãªããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåŒãèµ·ããå¯èœæ§ããããŸãããã¹ã±ãžã¥ãŒã©ã¯äžŠè¡åŠçãå°å ¥ããReactãã¬ã³ããªã³ã°äœæ¥ãããå°ãããäžæå¯èœãªåäœã«åå²ã§ããããã«ããŸãã
Reactã¹ã±ãžã¥ãŒã©ã®äž»èŠãªæŠå¿µã¯æ¬¡ã®ãšããã§ãïŒ
- Fiber: Fiberã¯äœæ¥ã®åäœã衚ããŸããåReactã³ã³ããŒãã³ãã€ã³ã¹ã¿ã³ã¹ã«ã¯ãã³ã³ããŒãã³ãããã®ç¶æ ãããã³ããªãŒå ã®ä»ã®ã³ã³ããŒãã³ããšã®é¢ä¿ã«é¢ããæ å ±ãä¿æãã察å¿ããFiberããŒãããããŸãã
- ã¯ãŒã¯ã«ãŒã: ã¯ãŒã¯ã«ãŒãã¯ãFiberããªãŒãå埩åŠçããæŽæ°ãå®è¡ããDOMã«å€æŽãã¬ã³ããªã³ã°ããã³ã¢ã¡ã«ããºã ã§ãã
- åªå 床ä»ã: ã¹ã±ãžã¥ãŒã©ã¯ãç·æ¥æ§ã«åºã¥ããŠããŸããŸãªçš®é¡ã®æŽæ°ã«åªå é äœãä»ããåªå 床ã®é«ãã¿ã¹ã¯ïŒãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ãªã©ïŒãè¿ éã«åŠçãããããã«ããŸãã
- 䞊è¡åŠç: Reactã¯ã¬ã³ããªã³ã°äœæ¥ãäžæãäžæåæ¢ããŸãã¯åéã§ããããããã©ãŠã¶ã¯ã¡ã€ã³ã¹ã¬ããããããã¯ããããšãªãä»ã®ã¿ã¹ã¯ïŒãŠãŒã¶ãŒå ¥åãã¢ãã¡ãŒã·ã§ã³ãªã©ïŒãåŠçã§ããŸãã
Reactã¹ã±ãžã¥ãŒã©ã®ã¯ãŒã¯ã«ãŒãïŒè©³çŽ°è§£èª¬
ã¯ãŒã¯ã«ãŒãã¯Reactã¹ã±ãžã¥ãŒã©ã®å¿èéšã§ããFiberããªãŒãèµ°æ»ããæŽæ°ãåŠçããDOMã«å€æŽãã¬ã³ããªã³ã°ãã責任ããããŸããã¯ãŒã¯ã«ãŒããã©ã®ããã«æ©èœããããçè§£ããããšã¯ãæœåšçãªããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããæé©åæŠç¥ãå®è£ ããããã«äžå¯æ¬ ã§ãã
ã¯ãŒã¯ã«ãŒãã®ãã§ãŒãº
ã¯ãŒã¯ã«ãŒãã¯äž»ã«2ã€ã®ãã§ãŒãºã§æ§æãããŠããŸãïŒ
- ã¬ã³ããŒãã§ãŒãº: ã¬ã³ããŒãã§ãŒãºã§ã¯ãReactã¯FiberããªãŒãèµ°æ»ããDOMã«ã©ã®ãããªå€æŽãå¿
èŠãã倿ããŸãããã®ãã§ãŒãºã¯ã差忀åºïŒreconciliationïŒããã§ãŒãºãšããŠãç¥ãããŠããŸãã
- äœæ¥éå§ (Begin Work): Reactã¯ã«ãŒãFiberããŒãããéå§ããããªãŒãååž°çã«äžã£ãŠãããçŸåšã®Fiberãšä»¥åã®FiberïŒååšããå ŽåïŒãæ¯èŒããŸãããã®ããã»ã¹ã«ãããã³ã³ããŒãã³ããæŽæ°ããå¿ èŠããããã©ããã倿ãããŸãã
- äœæ¥å®äº (Complete Work): ReactãããªãŒãé¡ãã«ã€ããŠãæŽæ°ã®åœ±é¿ãèšç®ããDOMã«é©çšããã倿ŽãæºåããŸãã
- ã³ããããã§ãŒãº: ã³ããããã§ãŒãºã§ã¯ãReactã¯DOMã«å€æŽãé©çšããã©ã€ããµã€ã¯ã«ã¡ãœãããåŒã³åºããŸãã
- ãã¥ãŒããŒã·ã§ã³å: Reactã¯`getSnapshotBeforeUpdate`ãªã©ã®ã©ã€ããµã€ã¯ã«ã¡ãœãããå®è¡ããŸãã
- ãã¥ãŒããŒã·ã§ã³: Reactã¯èŠçŽ ã®è¿œå ãåé€ããŸãã¯å€æŽã«ãã£ãŠDOMããŒããæŽæ°ããŸãã
- ã¬ã€ã¢ãŠã: Reactã¯`componentDidMount`ã`componentDidUpdate`ãªã©ã®ã©ã€ããµã€ã¯ã«ã¡ãœãããå®è¡ããŸãããŸããrefãæŽæ°ããã¬ã€ã¢ãŠããšãã§ã¯ããã¹ã±ãžã¥ãŒã«ããŸãã
ã¬ã³ããŒãã§ãŒãºã¯ãããåªå 床ã®é«ãã¿ã¹ã¯ãå°çããå Žåãã¹ã±ãžã¥ãŒã©ã«ãã£ãŠäžæãããããšããããŸããããããã³ããããã§ãŒãºã¯åæçã§ãããäžæããããšã¯ã§ããŸããã
åªå 床ä»ããšã¹ã±ãžã¥ãŒãªã³ã°
Reactã¯ãæŽæ°ãåŠçãããé åºã決å®ããããã«ãåªå 床ããŒã¹ã®ã¹ã±ãžã¥ãŒãªã³ã°ã¢ã«ãŽãªãºã ã䜿çšããŸããæŽæ°ã«ã¯ããã®ç·æ¥æ§ã«åºã¥ããŠç°ãªãåªå 床ãå²ãåœãŠãããŸãã
äžè¬çãªåªå 床ã¬ãã«ã¯æ¬¡ã®ãšããã§ãïŒ
- 峿åªå 床 (Immediate Priority): ãŠãŒã¶ãŒå ¥åïŒããã¹ããã£ãŒã«ããžã®å ¥åãªã©ïŒã®ããã«ãããã«åŠçããå¿ èŠãããç·æ¥ã®æŽæ°ã«äœ¿çšãããŸãã
- ãŠãŒã¶ãŒããããã³ã°åªå 床 (User Blocking Priority): ã¢ãã¡ãŒã·ã§ã³ããã©ã³ãžã·ã§ã³ãªã©ããŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ããããã¯ããæŽæ°ã«äœ¿çšãããŸãã
- éåžžåªå 床 (Normal Priority): æ°ããã³ã³ãã³ãã®ã¬ã³ããªã³ã°ãããŒã¿ã®æŽæ°ãªã©ãã»ãšãã©ã®æŽæ°ã«äœ¿çšãããŸãã
- äœåªå 床 (Low Priority): ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãåæãªã©ãéèŠã§ãªãæŽæ°ã«äœ¿çšãããŸãã
- ã¢ã€ãã«åªå 床 (Idle Priority): ããŒã¿ã®ããªãã§ãããè€éãªèšç®ã®å®è¡ãªã©ããã©ãŠã¶ãã¢ã€ãã«ç¶æ ã«ãªããŸã§å»¶æã§ããæŽæ°ã«äœ¿çšãããŸãã
Reactã¯ã`requestIdleCallback` APIïŒãŸãã¯ããªãã£ã«ïŒã䜿çšããŠäœåªå 床ã®ã¿ã¹ã¯ãã¹ã±ãžã¥ãŒã«ãããã©ãŠã¶ãããã©ãŒãã³ã¹ãæé©åããã¡ã€ã³ã¹ã¬ããã®ãããã¯ãåé¿ã§ããããã«ããŸãã
å¹ççãªã¿ã¹ã¯å®è¡ã®ããã®æé©åãã¯ããã¯
Reactã¹ã±ãžã¥ãŒã©ã®ã¯ãŒã¯ã«ãŒããæé©åããã«ã¯ãã¬ã³ããŒãã§ãŒãºäžã«è¡ãå¿ èŠã®ããäœæ¥éãæå°éã«æããæŽæ°ãæ£ããåªå é äœä»ããããããã«ããããšãå«ãŸããŸããã¿ã¹ã¯å®è¡å¹çãåäžãããããã®ããã€ãã®ãã¯ããã¯ã以äžã«ç€ºããŸãïŒ
1. ã¡ã¢å
ã¡ã¢åã¯ãã³ã¹ãã®é«ã颿°åŒã³åºãã®çµæããã£ãã·ã¥ããåãå ¥åãå床çºçãããšãã«ãã£ãã·ã¥ãããçµæãè¿ã匷åãªæé©åãã¯ããã¯ã§ããReactã§ã¯ãã¡ã¢åã¯ã³ã³ããŒãã³ããšå€ã®äž¡æ¹ã«é©çšã§ããŸãã
`React.memo`
`React.memo`ã¯ã颿°ã³ã³ããŒãã³ããã¡ã¢åããé«éã³ã³ããŒãã³ãã§ããpropsã倿ŽãããŠããªãå Žåãã³ã³ããŒãã³ãã®åã¬ã³ããªã³ã°ãé²ããŸããããã©ã«ãã§ã¯ã`React.memo`ã¯propsã®æµ ãæ¯èŒãå®è¡ããŸãã`React.memo`ã®ç¬¬2åŒæ°ãšããŠã«ã¹ã¿ã æ¯èŒé¢æ°ãæäŸããããšãã§ããŸãã
äŸïŒ
import React from 'react';
const MyComponent = React.memo(function MyComponent(props) {
// Component logic
return (
<div>
{props.value}
</div>
);
});
export default MyComponent;
`useMemo`
`useMemo`ã¯å€ãã¡ã¢åããããã¯ã§ããå€ãèšç®ãã颿°ãšäŸåé åãåãåããŸãã颿°ã¯äŸåé¢ä¿ã®ããããã倿Žãããå Žåã«ã®ã¿åå®è¡ãããŸããããã¯ãã³ã¹ãã®é«ãèšç®ãã¡ã¢åããããå®å®ããåç §ãäœæãããããã®ã«åœ¹ç«ã¡ãŸãã
äŸïŒ
import React, { useMemo } from 'react';
function MyComponent(props) {
const expensiveValue = useMemo(() => {
// Perform an expensive calculation
return computeExpensiveValue(props.data);
}, [props.data]);
return (
<div>
{expensiveValue}
</div>
);
}
`useCallback`
`useCallback`ã¯é¢æ°ãã¡ã¢åããããã¯ã§ãã颿°ãšäŸåé åãåãåããŸãã颿°ã¯äŸåé¢ä¿ã®ããããã倿Žãããå Žåã«ã®ã¿åäœæãããŸããããã¯ã`React.memo`ã䜿çšããåã³ã³ããŒãã³ãã«ã³ãŒã«ããã¯ãæž¡ãå Žåã«åœ¹ç«ã¡ãŸãã
äŸïŒ
import React, { useCallback } from 'react';
function MyComponent(props) {
const handleClick = useCallback(() => {
// Handle click event
console.log('Clicked!');
}, []);
return (
<button onClick={handleClick}>
Click Me
</button>
);
}
2. ä»®æ³å
ä»®æ³åïŒãŠã£ã³ããŠã€ã³ã°ãšãåŒã°ããïŒã¯ã倧ããªãªã¹ããããŒãã«ãå¹ççã«ã¬ã³ããªã³ã°ããããã®ãã¯ããã¯ã§ãããã¹ãŠã®é ç®ãäžåºŠã«ã¬ã³ããªã³ã°ããã®ã§ã¯ãªããä»®æ³åã§ã¯çŸåšãã¥ãŒããŒãã«è¡šç€ºãããŠããé ç®ã®ã¿ãã¬ã³ããªã³ã°ããŸãããŠãŒã¶ãŒãã¹ã¯ããŒã«ãããšãæ°ããé ç®ãã¬ã³ããªã³ã°ãããå€ãé ç®ãåé€ãããŸãã
ããã€ãã®ã©ã€ãã©ãªãReactçšã®ä»®æ³åã³ã³ããŒãã³ããæäŸããŠããŸãïŒ
- `react-window`: 倧ããªãªã¹ããããŒãã«ãã¬ã³ããªã³ã°ããããã®è»œéã©ã€ãã©ãªã
- `react-virtualized`: å¹ åºãä»®æ³åã³ã³ããŒãã³ããåãããããå æ¬çãªã©ã€ãã©ãªã
`react-window`ã䜿çšããäŸïŒ
import React from 'react';
import { FixedSizeList } from 'react-window';
const Row = ({ index, style }) => (
<div style={style}>
Row {index}
</div>
);
function MyListComponent(props) {
return (
<FixedSizeList
height={400}
width={300}
itemSize={30}
itemCount={props.items.length}
>
{Row}
</FixedSizeList>
);
}
3. ã³ãŒãåå²
ã³ãŒãåå²ã¯ãã¢ããªã±ãŒã·ã§ã³ãããå°ããªãã£ã³ã¯ã«åå²ãããªã³ããã³ãã§ããŒãã§ããããã«ãããã¯ããã¯ã§ããããã«ãããåæããŒãæéãççž®ãããã¢ããªã±ãŒã·ã§ã³ã®å šäœçãªããã©ãŒãã³ã¹ãåäžããŸãã
Reactã¯ã³ãŒãåå²ãå®è£ ããããã€ãã®æ¹æ³ãæäŸããŠããŸãïŒ
- `React.lazy` ãš `Suspense`: `React.lazy`ã䜿çšãããšã³ã³ããŒãã³ããåçã«ã€ã³ããŒãã§ãã`Suspense`ã䜿çšãããšã³ã³ããŒãã³ãã®èªã¿èŸŒã¿äžã«ãã©ãŒã«ããã¯UIã衚瀺ã§ããŸãã
- åçã€ã³ããŒã: åçã€ã³ããŒãïŒ`import()`ïŒã䜿çšããŠãã¢ãžã¥ãŒã«ããªã³ããã³ãã§ããŒãã§ããŸãã
`React.lazy` ãš `Suspense` ã䜿çšããäŸïŒ
import React, { lazy, Suspense } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
function App() {
return (
<Suspense fallback={<div>Loading...</div>}>
<MyComponent />
</Suspense>
);
}
4. ãããŠã³ã¹ãšã¹ããããªã³ã°
ãããŠã³ã¹ãšã¹ããããªã³ã°ã¯ã颿°ãå®è¡ãããé »åºŠãå¶éããããã®ãã¯ããã¯ã§ããããã¯ãã¹ã¯ããŒã«ã€ãã³ãããªãµã€ãºã€ãã³ããªã©ãé »ç¹ã«ããªã¬ãŒãããã€ãã³ããã³ãã©ã®ããã©ãŒãã³ã¹ãåäžãããã®ã«åœ¹ç«ã¡ãŸãã
- ãããŠã³ã¹: ãããŠã³ã¹ã¯ã颿°ãæåŸã«åŒã³åºãããŠããäžå®æéãçµéãããŸã§ã颿°ã®å®è¡ãé å»¶ãããŸãã
- ã¹ããããªã³ã°: ã¹ããããªã³ã°ã¯ã颿°ãå®è¡ãããé »åºŠãå¶éããŸãã颿°ã¯ãæå®ãããæéééå ã§äžåºŠã ãå®è¡ãããŸãã
ãããŠã³ã¹ã«`lodash`ã©ã€ãã©ãªã䜿çšããäŸïŒ
import React, { useState, useEffect } from 'react';
import { debounce } from 'lodash';
function MyComponent() {
const [value, setValue] = useState('');
const handleChange = (event) => {
setValue(event.target.value);
};
const debouncedHandleChange = debounce(handleChange, 300);
useEffect(() => {
return () => {
debouncedHandleChange.cancel();
};
}, [debouncedHandleChange]);
return (
<input type="text" onChange={debouncedHandleChange} />
);
}
5. äžèŠãªåã¬ã³ããªã³ã°ã®åé¿
Reactã¢ããªã±ãŒã·ã§ã³ã«ãããããã©ãŒãã³ã¹åé¡ã®æãäžè¬çãªåå ã®1ã€ã¯ãäžèŠãªåã¬ã³ããªã³ã°ã§ãããããã®äžèŠãªåã¬ã³ããªã³ã°ãæå°éã«æããã®ã«åœ¹ç«ã€ããã€ãã®æŠç¥ããããŸãïŒ
- ã€ãã¥ãŒã¿ãã«ãªããŒã¿æ§é : ã€ãã¥ãŒã¿ãã«ãªããŒã¿æ§é ã䜿çšãããšãããŒã¿ãžã®å€æŽãæ¢åã®ãªããžã§ã¯ãã倿Žãã代ããã«æ°ãããªããžã§ã¯ããäœæããããšãä¿èšŒãããŸããããã«ããã倿Žã®æ€åºã容æã«ãªããäžèŠãªåã¬ã³ããªã³ã°ãé²ãããšãã§ããŸããImmutable.jsãImmerã®ãããªã©ã€ãã©ãªã圹ç«ã¡ãŸãã
- Pure Components: ã¯ã©ã¹ã³ã³ããŒãã³ãã¯`React.PureComponent`ãç¶æ¿ã§ããããã¯åã¬ã³ããªã³ã°ã®åã«propsãšstateã®æµ ãæ¯èŒãå®è¡ããŸããããã¯é¢æ°ã³ã³ããŒãã³ãã«ããã`React.memo`ã«äŒŒãŠããŸãã
- é©åãªããŒãæã€ãªã¹ã: é ç®ã®ãªã¹ããã¬ã³ããªã³ã°ããéã¯ãåé ç®ã«ãŠããŒã¯ã§å®å®ããããŒãããããšã確èªããŠãã ãããããã«ãããé ç®ã远å ãåé€ããŸãã¯äžŠã¹æ¿ãããããšãã«Reactãå¹ççã«ãªã¹ããæŽæ°ã§ããŸãã
- ã€ã³ã©ã€ã³é¢æ°ãšãªããžã§ã¯ããpropsãšããŠæž¡ãã®ãé¿ãã: ã³ã³ããŒãã³ãã®renderã¡ãœããå ã§ã€ã³ã©ã€ã³ã§æ°ãã颿°ããªããžã§ã¯ããäœæãããšãããŒã¿ã倿ŽãããŠããªããŠãåã³ã³ããŒãã³ããåã¬ã³ããªã³ã°ãããåå ã«ãªããŸãããããé¿ããããã«`useCallback`ãš`useMemo`ã䜿çšããŠãã ããã
6. å¹ççãªã€ãã³ãåŠç
ã€ãã³ããã³ãã©å ã§è¡ãããäœæ¥ãæå°éã«æããããšã§ãã€ãã³ãåŠçãæé©åããŸããã€ãã³ããã³ãã©å ã§çŽæ¥è€éãªèšç®ãDOMæäœãè¡ãããšã¯é¿ããŠãã ããã代ããã«ããããã®ã¿ã¹ã¯ãéåææäœã«å§è²ããããèšç®éçŽçãªã¿ã¹ã¯ã«ã¯ãŠã§ãã¯ãŒã«ãŒã䜿çšããŠãã ããã
7. ãããã¡ã€ãªã³ã°ãšããã©ãŒãã³ã¹ã¢ãã¿ãªã³ã°
Reactã¢ããªã±ãŒã·ã§ã³ã宿çã«ãããã¡ã€ãªã³ã°ããŠãããã©ãŒãã³ã¹ã®ããã«ããã¯ãæé©åã®äœå°ãããé åãç¹å®ããŸããReact DevToolsã¯ãã³ã³ããŒãã³ãã®ã¬ã³ããªã³ã°æéã調æ»ããäžèŠãªåã¬ã³ããªã³ã°ãç¹å®ããã³ãŒã«ã¹ã¿ãã¯ãåæã§ãã匷åãªãããã¡ã€ãªã³ã°æ©èœãæäŸããŸããããã©ãŒãã³ã¹ã¢ãã¿ãªã³ã°ããŒã«ã䜿çšããŠãæ¬çªç°å¢ã§ã®äž»èŠãªããã©ãŒãã³ã¹ã¡ããªã¯ã¹ã远跡ãããŠãŒã¶ãŒã«åœ±é¿ãäžããåã«æœåšçãªåé¡ãç¹å®ããŸãã
å®äžçã®äŸãšã±ãŒã¹ã¹ã¿ãã£
ãããã®æé©åãã¯ããã¯ãã©ã®ããã«é©çšã§ããããããã€ãã®å®äžçã®äŸãèããŠã¿ãŸãããïŒ
- Eã³ããŒã¹ã®è£œåãªã¹ã: 倿°ã®è£œåã衚瀺ããEã³ããŒã¹ãµã€ãã¯ãã¹ã¯ããŒã«ããã©ãŒãã³ã¹ãåäžãããããã«ä»®æ³åã®æ©æµãåããããšãã§ããŸãã補åã³ã³ããŒãã³ããã¡ã¢åããããšããæ°éãã«ãŒãã®ç¶æ ã®ã¿ã倿Žããããšãã®äžèŠãªåã¬ã³ããªã³ã°ãé²ãããšãã§ããŸãã
- ã€ã³ã¿ã©ã¯ãã£ããªããã·ã¥ããŒã: è€æ°ã®ã€ã³ã¿ã©ã¯ãã£ããªãã£ãŒãããŠã£ãžã§ãããæã€ããã·ã¥ããŒãã¯ãã³ãŒãåå²ã䜿çšããŠå¿ èŠãªã³ã³ããŒãã³ãã®ã¿ããªã³ããã³ãã§ããŒãã§ããŸãããŠãŒã¶ãŒå ¥åã€ãã³ãããããŠã³ã¹ããããšã§ãéå°ãªæŽæ°ãé²ããå¿çæ§ãåäžãããããšãã§ããŸãã
- ãœãŒã·ã£ã«ã¡ãã£ã¢ãã£ãŒã: 倧éã®æçš¿ã¹ããªãŒã ã衚瀺ãããœãŒã·ã£ã«ã¡ãã£ã¢ãã£ãŒãã¯ãä»®æ³åã䜿çšããŠè¡šç€ºãããŠããæçš¿ã®ã¿ãã¬ã³ããªã³ã°ã§ããŸããæçš¿ã³ã³ããŒãã³ãã®ã¡ã¢åãšç»åèªã¿èŸŒã¿ã®æé©åã«ãããããã©ãŒãã³ã¹ãããã«åäžãããããšãã§ããŸãã
çµè«
Reactã¹ã±ãžã¥ãŒã©ã®ã¯ãŒã¯ã«ãŒããæé©åããããšã¯ã髿§èœãªReactã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«äžå¯æ¬ ã§ããã¹ã±ãžã¥ãŒã©ãã©ã®ããã«æ©èœããããçè§£ããã¡ã¢åãä»®æ³åãã³ãŒãåå²ããããŠã³ã¹ããããŠæ éãªã¬ã³ããªã³ã°æŠç¥ãªã©ã®ãã¯ããã¯ãé©çšããããšã§ãã¿ã¹ã¯å®è¡å¹çãå€§å¹ ã«åäžãããããã¹ã ãŒãºã§å¿çæ§ã®é«ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãçã¿åºãããšãã§ããŸããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããæé©åæŠç¥ãç¶ç¶çã«æŽç·Žãããããã«ãã¢ããªã±ãŒã·ã§ã³ã宿çã«ãããã¡ã€ãªã³ã°ããããšãå¿ããªãã§ãã ããã
ãããã®ãã¹ããã©ã¯ãã£ã¹ãå®è£ ããããšã§ãéçºè ã¯ãããŸããŸãªããã€ã¹ããããã¯ãŒã¯æ¡ä»¶äžã§ããè¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸãããããå¹ççã§é«æ§èœãªReactã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããæçµçã«ã¯ãŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ããšæºè¶³åºŠã®åäžã«ã€ãªãããŸãã