Reactã§ã®èªåã¹ããŒããã·ã³çæãæ¢æ±ããäºæž¬å¯èœã§ä¿å®æ§ã®é«ãã³ã³ããŒãã³ãç¶æ ãå®çŸãå¹ççãªéçºã®ããã®æè¡ãã©ã€ãã©ãªããã¹ããã©ã¯ãã£ã¹ãåŠã³ãŸãã
React èªåã¹ããŒããã·ã³çæïŒã³ã³ããŒãã³ãã®ç¶æ ãããŒã®å¹çå
çŸä»£ã®ããã³ããšã³ãéçºã«ãããŠãå ç¢ã§ä¿å®æ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«ã¯ãã³ã³ããŒãã³ãã®ç¶æ ã广çã«ç®¡çããããšãäžå¯æ¬ ã§ããè€éãªUIã€ã³ã¿ã©ã¯ã·ã§ã³ã¯ããã°ãã°å ¥ãçµãã ç¶æ ããžãã¯ã«ã€ãªããããã®çè§£ããããã°ãå°é£ã«ããŸããã¹ããŒããã·ã³ã¯ãç¶æ ãã¢ãã«åã管çããããã®åŒ·åãªãã©ãã€ã ãæäŸããäºæž¬å¯èœã§ä¿¡é Œæ§ã®é«ãæ¯ãèããä¿èšŒããŸãããã®èšäºã§ã¯ãReactã«ãããèªåã¹ããŒããã·ã³çæã®å©ç¹ãæ¢ããã³ã³ããŒãã³ãã®ç¶æ ãããŒãèªååããããã®æè¡ãã©ã€ãã©ãªããã¹ããã©ã¯ãã£ã¹ãæ€èšŒããŸãã
ã¹ããŒããã·ã³ãšã¯ïŒ
ã¹ããŒããã·ã³ïŒãŸãã¯æéç¶æ ãã·ã³ãFSMïŒã¯ãã·ã¹ãã ã®æ¯ãèããäžé£ã®ç¶æ ãšãããã®ç¶æ éã®é·ç§»ãšããŠèšè¿°ããèšç®ã®æ°åŠçã¢ãã«ã§ããããã¯ãããç¶æ ããå¥ã®ç¶æ ãžã®é·ç§»ãåŒãèµ·ããã€ãã³ããšããŠç¥ãããå ¥åã«åºã¥ããŠåäœããŸããåç¶æ ã¯ã·ã¹ãã ã®ç¹å®ã®æ¡ä»¶ãã¢ãŒãã衚ããé·ç§»ã¯ã·ã¹ãã ããããã®ç¶æ éãã©ã®ããã«ç§»åããããå®çŸ©ããŸãã
ã¹ããŒããã·ã³ã®äž»ãªæŠå¿µã¯æ¬¡ã®ãšããã§ãã
- ç¶æ ïŒã·ã¹ãã ã®æç¢ºãªæ¡ä»¶ãã¢ãŒãã衚ããŸããäŸãã°ããã¿ã³ã³ã³ããŒãã³ãã¯ãã¢ã€ãã«ããããããŒãããæŒäžãã®ãããªç¶æ ãæã€ãããããŸããã
- ã€ãã³ãïŒç¶æ éã®é·ç§»ãåŒãèµ·ããå ¥åã§ããäŸãšããŠããŠãŒã¶ãŒã®ã¯ãªãã¯ããããã¯ãŒã¯å¿çãã¿ã€ããŒãªã©ããããŸãã
- é·ç§»ïŒã€ãã³ãã«å¿çããŠãããç¶æ ããå¥ã®ç¶æ ãžã®ç§»åãå®çŸ©ããŸããåé·ç§»ã¯ãå ã®ç¶æ ãããªã¬ãŒãšãªãã€ãã³ããããã³é·ç§»å ã®ç¶æ ãæå®ããŸãã
- åæç¶æ ïŒã·ã¹ãã ãæåã«éå§ããç¶æ ã§ãã
- æçµç¶æ ïŒãã·ã³ã®å®è¡ãçµäºãããç¶æ ã§ãïŒä»»æïŒã
ã¹ããŒããã·ã³ã¯ãè€éãªç¶æ ããžãã¯ãã¢ãã«åããããã®æç¢ºã§æ§é åãããæ¹æ³ãæäŸãããã®çè§£ããã¹ããä¿å®ã容æã«ããŸããããã«ãããå¯èœãªç¶æ é·ç§»ã«å¶çŽã課ãããäºæããªããŸãã¯ç¡å¹ãªç¶æ ãé²ãããšãã§ããŸãã
Reactã§ã¹ããŒããã·ã³ã䜿çšããå©ç¹
ã¹ããŒããã·ã³ãReactã³ã³ããŒãã³ãã«çµ±åããããšã«ã¯ãããã€ãã®éèŠãªå©ç¹ããããŸãã
- ç¶æ 管çã®æ¹åïŒã¹ããŒããã·ã³ã¯ãã³ã³ããŒãã³ãã®ç¶æ ã管çããããã®æç¢ºã§æ§é åãããã¢ãããŒããæäŸããè€éãã軜æžããã¢ããªã±ãŒã·ã§ã³ã®æ¯ãèããçè§£ããããããŸãã
- äºæž¬å¯èœæ§ã®åäžïŒæç¢ºãªç¶æ ãšé·ç§»ãå®çŸ©ããããšã«ãããã¹ããŒããã·ã³ã¯äºæž¬å¯èœãªæ¯ãèããä¿èšŒããç¡å¹ãªç¶æ ã®çµã¿åãããé²ããŸãã
- ãã¹ãã®ç°¡çŽ åïŒåç¶æ ãšé·ç§»ãåå¥ã«ãã¹ãã§ãããããã¹ããŒããã·ã³ã¯å æ¬çãªãã¹ãã®äœæã容æã«ããŸãã
- ä¿å®æ§ã®åäžïŒã¹ããŒããã·ã³ã®æ§é åãããæ§è³ªã«ãããç¶æ ããžãã¯ã®çè§£ãšå€æŽã容æã«ãªããé·æçãªä¿å®æ§ãåäžããŸãã
- ã³ã©ãã¬ãŒã·ã§ã³ã®æ¹åïŒã¹ããŒããã·ã³ã®å³ãã³ãŒãã¯ãéçºè ãšãã¶ã€ããŒã®ããã®å ±éèšèªãæäŸããã³ã©ãã¬ãŒã·ã§ã³ãšã³ãã¥ãã±ãŒã·ã§ã³ãä¿é²ããŸãã
ããŒãã£ã³ã°ã€ã³ãžã±ãŒã¿ã³ã³ããŒãã³ãã®ç°¡åãªäŸãèããŠã¿ãŸããããã¹ããŒããã·ã³ããªããã°ã`isLoading`ã`isError`ã`isSuccess`ã®ãããªè€æ°ã®ããŒã«å€ãã©ã°ã§ãã®ç¶æ ã管çãããããããŸãããããã¯å®¹æã«ççŸããç¶æ ïŒäŸïŒ`isLoading`ãš`isSuccess`ã®äž¡æ¹ãtrueã«ãªãïŒã«ã€ãªããå¯èœæ§ããããŸããããããã¹ããŒããã·ã³ã¯ãã³ã³ããŒãã³ãã`ã¢ã€ãã«`ã`ããŒãã£ã³ã°`ã`æå`ã`ãšã©ãŒ`ã®ããããã®ç¶æ ã«ããååšã§ããªãããšã匷å¶ãããã®ãããªççŸãé²ããŸãã
èªåã¹ããŒããã·ã³çæ
ã¹ããŒããã·ã³ãæåã§å®çŸ©ããããšã¯æçã§ãããè€éãªã³ã³ããŒãã³ãã§ã¯ãã®ããã»ã¹ãéå±ã§ãšã©ãŒãèµ·ããããããªãå¯èœæ§ããããŸããèªåã¹ããŒããã·ã³çæã¯ãéçºè ã宣èšçãªåœ¢åŒã§ã¹ããŒããã·ã³ããžãã¯ãå®çŸ©ãããããèªåçã«å®è¡å¯èœãªã³ãŒãã«ã³ã³ãã€ã«ããããšã§è§£æ±ºçãæäŸããŸãããã®ã¢ãããŒãã«ã¯ããã€ãã®å©ç¹ããããŸãã
- ãã€ã©ãŒãã¬ãŒãã®åæžïŒèªåçæã«ãããå埩çãªç¶æ 管çã³ãŒããèšè¿°ããå¿ èŠããªããªãããã€ã©ãŒãã¬ãŒããåæžãããéçºè ã®çç£æ§ãåäžããŸãã
- äžè²«æ§ã®åäžïŒåäžã®ä¿¡é Œã§ããæ å ±æºããã³ãŒããçæããããšã«ãããèªåçæã¯äžè²«æ§ã確ä¿ãããšã©ãŒã®ãªã¹ã¯ãäœæžããŸãã
- ä¿å®æ§ã®åäžïŒã¹ããŒããã·ã³ããžãã¯ã®å€æŽã¯å®£èšçãªåœ¢åŒã§è¡ãããšãã§ããã³ãŒãã¯èªåçã«åçæããããããä¿å®ãç°¡çŽ åãããŸãã
- å¯èŠåãšããŒãªã³ã°ïŒå€ãã®ã¹ããŒããã·ã³çæããŒã«ã¯å¯èŠåæ©èœãæäŸããéçºè ãç¶æ ããžãã¯ãããç°¡åã«çè§£ãããããã°ã§ããããã«ããŸãã
Reactèªåã¹ããŒããã·ã³çæã®ããã®ããŒã«ãšã©ã€ãã©ãª
Reactã§ã®èªåã¹ããŒããã·ã³çæã容æã«ããããã€ãã®ããŒã«ãã©ã€ãã©ãªããããŸãã以äžã«æã人æ°ã®ãããã®ãããã€ã玹ä»ããŸãã
XState
XStateã¯ãã¹ããŒããã·ã³ãšã¹ããŒããã£ãŒããäœæãè§£éãå®è¡ããããã®åŒ·åãªJavaScriptã©ã€ãã©ãªã§ããã¹ããŒããã·ã³ããžãã¯ãå®çŸ©ããããã®å®£èšçãªæ§æãæäŸããéå±€çããã³äžŠåçãªç¶æ ãã¬ãŒããã¢ã¯ã·ã§ã³ããµããŒãããŠããŸãã
äŸïŒXStateã§ç°¡åãªãã°ã«ã¹ããŒããã·ã³ãå®çŸ©ãã
import { createMachine } from 'xstate';
const toggleMachine = createMachine({
id: 'toggle',
initial: 'inactive',
states: {
inactive: {
on: {
TOGGLE: { target: 'active' },
},
},
active: {
on: {
TOGGLE: { target: 'inactive' },
},
},
},
});
export default toggleMachine;
ãã®ã³ãŒãã¯ã`inactive`ãš`active`ã®2ã€ã®ç¶æ ãšããããã®éãé·ç§»ãã`TOGGLE`ã€ãã³ããæã€ã¹ããŒããã·ã³ãå®çŸ©ããŸãããã®ã¹ããŒããã·ã³ãReactã³ã³ããŒãã³ãã§äœ¿çšããã«ã¯ãXStateãæäŸãã`useMachine`ããã¯ã䜿çšããŸãã
import { useMachine } from '@xstate/react';
import toggleMachine from './toggleMachine';
function ToggleComponent() {
const [state, send] = useMachine(toggleMachine);
return (
);
}
export default ToggleComponent;
ãã®äŸã¯ãXStateã䜿çšããŠã³ã³ããŒãã³ãã®ç¶æ ã宣èšçãã€äºæž¬å¯èœãªæ¹æ³ã§å®çŸ©ãã管çããæ¹æ³ã瀺ããŠããŸãã
Robot
Robotã¯ãã·ã³ãã«ããšäœ¿ããããã«éç¹ã眮ããããäžã€ã®åªããã¹ããŒããã·ã³ã©ã€ãã©ãªã§ããã¹ããŒããã·ã³ãå®çŸ©ããReactã³ã³ããŒãã³ãã«çµ±åããããã®ç°¡åãªAPIãæäŸããŸãã
äŸïŒRobotã§ã«ãŠã³ã¿ãŒã¹ããŒããã·ã³ãå®çŸ©ãã
import { createMachine, assign } from 'robot';
const counterMachine = createMachine({
id: 'counter',
initial: 'idle',
context: { count: 0 },
states: {
idle: {
on: {
INCREMENT: { actions: assign({ count: (context) => context.count + 1 }) },
DECREMENT: { actions: assign({ count: (context) => context.count - 1 }) },
},
},
},
});
export default counterMachine;
ãã®ã³ãŒãã¯ã`idle`ç¶æ ãšã`count`ã³ã³ããã¹ã倿°ãæŽæ°ãã`INCREMENT`ãš`DECREMENT`ã®2ã€ã®ã€ãã³ããæã€ã¹ããŒããã·ã³ãå®çŸ©ããŸãã`assign`ã¢ã¯ã·ã§ã³ã¯ã³ã³ããã¹ãã倿Žããããã«äœ¿çšãããŸãã
Reactããã¯ãšã«ã¹ã¿ã ãœãªã¥ãŒã·ã§ã³
XStateãRobotã®ãããªã©ã€ãã©ãªã¯å æ¬çãªã¹ããŒããã·ã³å®è£ ãæäŸããŸãããReactããã¯ã䜿çšããŠã«ã¹ã¿ã ã®ã¹ããŒããã·ã³ãœãªã¥ãŒã·ã§ã³ãäœæããããšãå¯èœã§ãããã®ã¢ãããŒãã«ãããå®è£ ã®è©³çްã«å¯Ÿããæè»æ§ãšå¶åŸ¡ãåäžããŸãã
äŸïŒ`useReducer`ã§ç°¡åãªã¹ããŒããã·ã³ãå®è£ ãã
import { useReducer } from 'react';
const initialState = { value: 'inactive' };
const reducer = (state, event) => {
switch (event.type) {
case 'TOGGLE':
return { value: state.value === 'inactive' ? 'active' : 'inactive' };
default:
return state;
}
};
function useToggle() {
const [state, dispatch] = useReducer(reducer, initialState);
return [state, dispatch];
}
function ToggleComponent() {
const [state, dispatch] = useToggle();
return (
);
}
export default ToggleComponent;
ãã®äŸã§ã¯ã`useReducer`ããã¯ã䜿çšããŠãreducer颿°ã«åºã¥ããŠç¶æ é·ç§»ã管çããŸãããã®ã¢ãããŒãã¯å°çšã®ã¹ããŒããã·ã³ã©ã€ãã©ãªã䜿çšãããããã·ã³ãã«ã§ããããã倧ããè€éãªã¹ããŒããã·ã³ã§ã¯è€éã«ãªãå¯èœæ§ããããŸãã
Reactã§ã¹ããŒããã·ã³ãå®è£ ããããã®ãã¹ããã©ã¯ãã£ã¹
Reactã§ã¹ããŒããã·ã³ã广çã«å®è£ ããããã«ã以äžã®ãã¹ããã©ã¯ãã£ã¹ãèæ ®ããŠãã ããã
- ç¶æ ãšé·ç§»ãæç¢ºã«å®çŸ©ããïŒã¹ããŒããã·ã³ãå®è£ ããåã«ãå¯èœãªç¶æ ãšãããã®éã®é·ç§»ãæ éã«å®çŸ©ããŸããå³ããã®ä»ã®èŠèŠçãªè£å©ã䜿çšããŠãç¶æ ãããŒããããã³ã°ããŸãã
- ç¶æ ãã¢ãããã¯ã«ä¿ã€ïŒåç¶æ ã¯ãæç¢ºã§ããå®çŸ©ãããåäžã®æ¡ä»¶ã衚ãã¹ãã§ããè€æ°ã®é¢é£ããªãæ å ±ãçµã¿åãããè€éãªç¶æ ãäœæããããšã¯é¿ããŠãã ããã
- ã¬ãŒãã䜿çšããŠé·ç§»ãå¶åŸ¡ããïŒã¬ãŒãã¯ãé·ç§»ãçºçããããã«æºããããªããã°ãªããªãæ¡ä»¶ã§ããã¬ãŒãã䜿çšããŠç¡å¹ãªç¶æ é·ç§»ãé²ããã¹ããŒããã·ã³ãæåŸ ã©ããã«åäœããããšãä¿èšŒããŸããäŸãã°ãã¬ãŒãã¯è³Œå ¥ãé²ããåã«ãŠãŒã¶ãŒãååãªè³éãæã£ãŠãããã©ããããã§ãã¯ããããšãã§ããŸãã
- ã¢ã¯ã·ã§ã³ãšé·ç§»ãåé¢ããïŒã¢ã¯ã·ã§ã³ã¯ãé·ç§»äžã«çºçããå¯äœçšã§ããã³ãŒãã®æç¢ºããšãã¹ãã®å®¹æããåäžãããããã«ãã¢ã¯ã·ã§ã³ãé·ç§»ããžãã¯ããåé¢ããŸããäŸãã°ãã¢ã¯ã·ã§ã³ã¯ãŠãŒã¶ãŒã«éç¥ãéä¿¡ããããšãããããŸããã
- ã¹ããŒããã·ã³ã培åºçã«ãã¹ãããïŒåç¶æ ãšé·ç§»ã«å¯ŸããŠå æ¬çãªãã¹ããèšè¿°ããã¹ããŒããã·ã³ããã¹ãŠã®ç¶æ³äžã§æ£ããåäœããããšãä¿èšŒããŸãã
- ã¹ããŒããã·ã³ãå¯èŠåããïŒå¯èŠåããŒã«ã䜿çšããŠãç¶æ ããžãã¯ãçè§£ãããããã°ããŸããå€ãã®ã¹ããŒããã·ã³ã©ã€ãã©ãªã¯ãåé¡ã®ç¹å®ãšè§£æ±ºã«åœ¹ç«ã€å¯èŠåæ©èœãæäŸããŠããŸãã
å®äžçã®äŸãšãŠãŒã¹ã±ãŒã¹
ã¹ããŒããã·ã³ã¯ãããŸããŸãªReactã³ã³ããŒãã³ããã¢ããªã±ãŒã·ã§ã³ã«é©çšã§ããŸãã以äžã¯äžè¬çãªãŠãŒã¹ã±ãŒã¹ã§ãã
- ãã©ãŒã ããªããŒã·ã§ã³ïŒãåæãããæ€èšŒäžãããæå¹ãããç¡å¹ããªã©ã®ç¶æ ãå«ããã©ãŒã ã®æ€èšŒç¶æ ã管çããããã«ã¹ããŒããã·ã³ã䜿çšããŸãã
- UIã³ã³ããŒãã³ãïŒã¢ã³ãŒãã£ãªã³ãã¿ããã¢ãŒãã«ãªã©ã®è€éãªUIã³ã³ããŒãã³ããå®è£ ãããã®ç¶æ ãšæ¯ãèãã管çããããã«ã¹ããŒããã·ã³ã䜿çšããŸãã
- èªèšŒãããŒïŒãæªèªèšŒãããèªèšŒäžãããèªèšŒæžã¿ããããšã©ãŒããªã©ã®ç¶æ ãæã€ã¹ããŒããã·ã³ã䜿çšããŠèªèšŒããã»ã¹ãã¢ãã«åããŸãã
- ã²ãŒã éçºïŒãã¬ã€ã€ãŒãæµããªããžã§ã¯ããªã©ã®ã²ãŒã ãšã³ãã£ãã£ã®ç¶æ ã管çããããã«ã¹ããŒããã·ã³ã䜿çšããŸãã
- Eã³ããŒã¹ã¢ããªã±ãŒã·ã§ã³ïŒãä¿çäžãããåŠçäžãããçºéæžã¿ãããé éæžã¿ããªã©ã®ç¶æ ãæã€ã¹ããŒããã·ã³ã䜿çšããŠæ³šæåŠçãããŒãã¢ãã«åããŸããã¹ããŒããã·ã³ã¯ãæ¯æãã®å€±æãåšåº«äžè¶³ãäœæç¢ºèªã®åé¡ãªã©ã®è€éãªã·ããªãªãåŠçã§ããŸãã
- ã°ããŒãã«ãªäŸïŒåœéç·ã®ãã©ã€ãäºçŽã·ã¹ãã ãæ³åããŠã¿ãŠãã ãããäºçŽããã»ã¹ã¯ãããã©ã€ãéžæäžãããä¹å®¢è©³çŽ°å ¥åäžãããæ¯æãäžãããäºçŽç¢ºå®ãããäºçŽå€±æããªã©ã®ç¶æ ãæã€ã¹ããŒããã·ã³ãšããŠã¢ãã«åã§ããŸããåç¶æ ã¯ãäžçäžã®ç°ãªãèªç©ºäŒç€Ÿã®APIãæ¯æãã²ãŒããŠã§ã€ãšããåãããããã®ç¹å®ã®ã¢ã¯ã·ã§ã³ãæã€ããšãã§ããŸãã
é«åºŠãªæŠå¿µãšèæ ®äºé
Reactã§ã®ã¹ããŒããã·ã³ã«æ £ããŠãããšãé«åºŠãªæŠå¿µãèæ ®äºé ã«ééãããããããŸããã
- éå±€çã¹ããŒããã·ã³ïŒéå±€çã¹ããŒããã·ã³ã§ã¯ãç¶æ ãä»ã®ç¶æ ã®äžã«ãã¹ããããããšãã§ããç¶æ ããžãã¯ã®éå±€ãäœæã§ããŸããããã¯ãè€æ°ã®æœè±¡åã¬ãã«ãæã€è€éãªã·ã¹ãã ãã¢ãã«åããã®ã«åœ¹ç«ã¡ãŸãã
- 䞊åã¹ããŒããã·ã³ïŒäžŠåã¹ããŒããã·ã³ã§ã¯ãè€æ°ã®ç¶æ ãåæã«ã¢ã¯ãã£ãã«ãªã䞊è¡ç¶æ ããžãã¯ãã¢ãã«åã§ããŸããããã¯ãè€æ°ã®ç¬ç«ããããã»ã¹ãæã€ã·ã¹ãã ãã¢ãã«åããã®ã«åœ¹ç«ã¡ãŸãã
- ã¹ããŒããã£ãŒãïŒã¹ããŒããã£ãŒãã¯ãè€éãªã¹ããŒããã·ã³ãæå®ããããã®èŠèŠçãªåœ¢åŒã§ããç¶æ ãšé·ç§»ãã°ã©ãã£ã«ã«ã«è¡šçŸããç¶æ ããžãã¯ã®çè§£ãšäŒéã容æã«ããŸããXStateã®ãããªã©ã€ãã©ãªã¯ãã¹ããŒããã£ãŒã仿§ãå®å šã«ãµããŒãããŠããŸãã
- ä»ã®ã©ã€ãã©ãªãšã®çµ±åïŒã¹ããŒããã·ã³ã¯ãReduxãZustandãªã©ã®ä»ã®Reactã©ã€ãã©ãªãšçµ±åããŠãã°ããŒãã«ãªã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã管çããããšãã§ããŸããããã¯ãè€æ°ã®ã³ã³ããŒãã³ããé¢äžããè€éãªã¢ããªã±ãŒã·ã§ã³ãããŒãã¢ãã«åããã®ã«åœ¹ç«ã¡ãŸãã
- ããžã¥ã¢ã«ããŒã«ããã®ã³ãŒãçæïŒäžéšã®ããŒã«ã§ã¯ãã¹ããŒããã·ã³ãèŠèŠçã«èšèšãã察å¿ããã³ãŒããèªåçã«çæããããšãã§ããŸããããã¯ãè€éãªã¹ããŒããã·ã³ãããéããããçŽæçã«äœæããæ¹æ³ãšãªãåŸãŸãã
çµè«
èªåã¹ããŒããã·ã³çæã¯ãReactã¢ããªã±ãŒã·ã§ã³ã«ãããã³ã³ããŒãã³ãã®ç¶æ ãããŒãå¹çåããããã®åŒ·åãªã¢ãããŒããæäŸããŸãã宣èšçãªæ§æãšèªåã³ãŒãçæã䜿çšããããšã§ãéçºè ã¯ãã€ã©ãŒãã¬ãŒããåæžããäžè²«æ§ãåäžãããä¿å®æ§ãé«ããããšãã§ããŸããXStateãRobotã®ãããªã©ã€ãã©ãªã¯Reactã§ã¹ããŒããã·ã³ãå®è£ ããããã®åªããããŒã«ãæäŸããReactããã¯ã䜿çšããã«ã¹ã¿ã ãœãªã¥ãŒã·ã§ã³ã¯ãã倧ããªæè»æ§ããããããŸãããã¹ããã©ã¯ãã£ã¹ã«åŸããé«åºŠãªæŠå¿µãæ¢æ±ããããšã§ãã¹ããŒããã·ã³ã掻çšããŠãããå ç¢ã§äºæž¬å¯èœã§ä¿å®æ§ã®é«ãReactã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸããWebã¢ããªã±ãŒã·ã§ã³ã®è€éããå¢ãã«ã€ããŠãã¹ããŒããã·ã³ã¯ç¶æ ã管çããã¹ã ãŒãºãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãä¿èšŒããäžã§ãŸããŸãéèŠãªåœ¹å²ãæããã§ãããã
ã¹ããŒããã·ã³ã®åãæŽ»çšããReactã³ã³ããŒãã³ãã«å¯Ÿããæ°ããã¬ãã«ã®å¶åŸ¡ãè§£ãæŸã¡ãŸãããããã®èšäºã§èª¬æããããŒã«ãšæè¡ã詊ãå§ããèªåã¹ããŒããã·ã³çæãããªãã®éçºã¯ãŒã¯ãããŒãã©ã®ããã«å€é©ã§ããããçºèŠããŠãã ããã