Reactã®å§ãæ¹ â ãã¿ã³ã§ææ°ãå€ããæ³šæç»é¢ãäœã
ç¶æ ãããææ°ãšåèšã衚瀺ãã
- Viteã®ReactåŠç¿ç°å¢ãäœã
- JSXãšpropsã§éšåãçµã¿åããã
- useStateã§ææ°ãå€ãåèšãèšç®ãã
- Effectã®å¿ èŠæ§ã倿ãã
æåã®ãŽãŒã«ïŒ1æã»150åã3æã»450åã«ãªã
JavaScriptå ¥éã®é¢æ°ã»é åã»ã€ãã³ããå°ãç¥ã£ãŠãããšèªã¿ããããªããŸããä»åã¯Reactã®éšåãšç¶æ ã«éäžããŸãã
1. åŠç¿çšãããžã§ã¯ããäœã
Node.jsã®LTSçãçšæããŸããViteå ¬åŒã®èŠä»¶ã¯Node.js 20.19以éã»22.12以éã§ããããã³ãã¬ãŒããããæ°ããçãèŠæ±ããããšãããããã衚瀺ãããèŠåã確èªããŠãã ããã
node --version
npm --version
npm create vite@latest hiyopen-react -- --template react
cd hiyopen-react
npm install
npm run dev
ã¿ãŒããã«ã«åºãLocalã®URLãéããŸããé垞㯠http://localhost:5173 ã§ããã䜿ãããŠãããšå¥ã®ããŒãã«ãªãããšããããŸãããã³ãã¬ãŒãç»é¢ãåºããæºåå®äºãCreate React Appã¯éæšå¥šã«ãªã£ãŠãããããããå§ããæé ãšããŠã¯äœ¿ããŸããã
2. src/App.jsxãäžžããšçœ®ãæãã
import { useState } from 'react';
function Greeting({ name }) {
return <h1>ããã«ã¡ã¯ã{name}ããïŒ</h1>;
}
export default function App() {
const [quantity, setQuantity] = useState(1);
const unitPrice = 150;
const total = quantity * unitPrice;
return (
<main>
<Greeting name="ã²ãã" />
<h2>ãã±ããã®æ³šæ</h2>
<p>ææ°ïŒ{quantity}æ</p>
<p>åèšïŒ{total}å</p>
<button onClick={() => setQuantity(n => n + 1)}>
1æå¢ãã
</button>
</main>
);
}
ä¿åãããšç»é¢ãæŽæ°ãããŸããæåã¯1æã»150åã2åæŒããš3æã»450åãåèªã¿èŸŒã¿ã§ã¯1æã«æ»ããŸããæ³šæã®ä¿åãæ±ºæžã¯å®è£ ããŠããªããå°ããªè¡šç€ºã®ç·Žç¿ã§ããçµäºãããšãã¯éçºãµãŒããŒã®ã¿ãŒããã«ã§Ctrl+Cã
3. ã³ãŒãã3ã€ã«åããŠèªã
| æžãæ¹ | ä»åã®åœ¹å² |
|---|---|
Greeting({ name }) | propsãšããŠååãåãåãéšå |
useState(1) | ææ°ãšãææ°ãæŽæ°ãã颿°ãçšæ |
quantity * unitPrice | çŸåšã®ææ°ããåèšãèšç® |
onClick ã«ã¯åŒã³åºããçµæã§ã¯ãªããã¯ãªãã¯æã«å®è¡ãã颿°ãæž¡ããŸããonClick={setQuantity(...)} ãšæžããšæç»äžã«æŽæ°ãèµ°ããããä»åã®ããã« () => ... ãæž¡ããŸããããç¶æ
ã®æŽæ°ã¯æ¬¡ã®æç»ãžåæ ãããåŒãã çŽåŸã®åãåŠçå
ã®å€æ°ãæ°ããå€ã«å€ããããã§ã¯ãããŸããã
Effectã¯ãäœã§ãè£ã§å®è¡ããå Žæãã§ã¯ãªã
ä»åã®åèšã¯ç¶æ ããèšç®ã§ããã®ã§ãEffectãå¥ã®totalã®ç¶æ ãäžèŠã§ããäºé管çãããšå€ããããåå ã«ãªããŸãã
Effectã¯Reactã®å€ãšã®åæã«äœ¿ããŸããã¿ã€ããŒãªãéå§ã«å¯Ÿå¿ããè§£é€ãã€ãã³ã賌èªãªãç»é²ã«å¯Ÿå¿ããè§£é€ãèšèšãäŸåé åã¯èŠåãæ¶ãããã«é©åœã«ç©ºã«ããã®ã§ã¯ãªããEffectãåç §ããå€ã«åãããŸããéçºæã®Strict Modeã«ã¯åé¡ãèŠã€ãã远å ã®å®è¡ããããåŠçãç¹°ãè¿ãããŠãæŽåãããã確èªããŸãã
次ãžé²ãåã«
npm run build ã§æ¬çªåãã«ãã«ãã§ããã確èªã§ããŸããViteã®ãã®æ§æã«ã¯ãã«ãŒãã£ã³ã°ã»ããŒã¿ååŸã®èšèšã»React Server ComponentsïŒRSCïŒãèªåã§æãããã§ã¯ãããŸããã
RSCã¯ãã©ãŠã¶ã®ã¢ããªãšã¯å¥ã®ç°å¢ã§ã³ã³ããŒãã³ããå®è¡ããä»çµã¿ã§ããã«ãæãŸãã¯èŠæ±æã«äœ¿ããŸãããHTMLããµãŒããŒããéãããšãã ãã®å¥åã§ã¯ãªããSSRãšãåºå¥ããŸãããŸãç¶æ ãšpropsãçè§£ããå¿ èŠã«ãªã£ããNext.jså ¥éãžãTypeScriptå ¥éã¯åãä»ãããæ®µéã§èªããŸãã
åèè³æ
2026幎10æ9æ¥ç¢ºèªã
- React â Installation â ãã¬ãŒã ã¯ãŒã¯ã»åŠç¿çšæ§æã»CRAã®éæšå¥š
- React â Build from scratch â Viteãªã©ã®æ§æ
- Vite â Getting started â Node.jsèŠä»¶ãšReactãã³ãã¬ãŒã
- React â useState â æŽæ°é¢æ°ãšç¶æ
- React â You might not need an Effect â æŽŸçå€ã®èšç®ãšå€éšåæ
- React â Server Components â RSCãšSSRã®åºå¥