React.jsåå¿è ã«ããããï¼CDNã使ã£ã¦ç°¡åã«Reactããã¸ã§ã¯ããå§ããã
React.jsããã¸ã§ã¯ãã®ã»ããã¢ããã¯åå¿è ã«ã¨ã£ã¦éå¸¸ã«æéããããæé ã§ãããç¹ã«Reactã¨ã³ã·ã¹ãã ã®åå¿è ã®å ´åã¯ããå°é£ã¨ãªãã¾ãã
ããããä¸è¬çã«ã¯create-react-app(CRA)ã使ç¨ãã¦React.jsã¢ããªã±ã¼ã·ã§ã³ã使ãããã¨ãæ¨å¥¨ããã¦ãã¾ãã
CRAã¯ãæ£ç¢ºãªnpmãã¼ã¸ã§ã³ãReacté¢é£ã©ã¤ãã©ãªãªã©ã®å¿é ãããå¿ è¦ããªããnpx create-react-appã®ãããªã³ãã³ãã使ç¨ããã ãã§Reactããã¸ã§ã¯ããæ§ç¯ãããã¨ãã§ãã¾ãã
CRAã¯Reactããã¸ã§ã¯ãã®æ§ç¯ã«é常ã«ä¾¿å©ãªãã¼ã«ã§ãããäºåã«å¦ç¿ããªãã¦ãç°¡åã«å§ãããã¨ãã§ãã¾ãã
ãã ããåå¿è ãCRAã使ç¨ãã¦Reactããã¸ã§ã¯ããæ§ç¯ããå ´åãnpm startã³ãã³ããã¨ã©ã¼ã§å®è¡ãããªããªã©ã®åé¡ã«ééãããã¨ãããã¾ãã
ãã®ãããªåé¡ã¯ãpackage.jsonã®è¨å®ãnpmã®å¦ç¿ãæ ã£ãããNode.jsã®ãã¼ã¸ã§ã³ãäºåã«ãã§ãã¯ããªãã£ãããã«çºçããå¯è½æ§ãããã¾ãã
React.js CDNã使ç¨ããã¨ãéçºè ã¨ãã¦ã®çæ´»ãå¤§å¹ ã«æ¥½ã«ãªãã¾ãã
ãã ããæ¬çªãµã¤ãã§ã¯ãå§ãã§ãã¾ããã
CDNã¯ã主ã«å¦ç¿ç®çã¾ãã¯å°è¦æ¨¡ã®ã¢ããªã±ã¼ã·ã§ã³ç®çã§ä½¿ç¨ãããã¨ãé©ãã¦ãã¾ãã
React Docsã«ã¯ã1åã§Reactã追å ã§ããã¨è¨è¼ããã¦ãã¾ãã
ããã¯çå®ã§ãã
ãã®è¨äºã§ã¯ãReact CDNã使ç¨ãã¦ã³ã³ãã¼ãã³ãã«JSXã追å ããæ¹æ³ãå¦ç¿ãããã¨ãã§ãã¾ãã
CDNã¨ã¯
CDNï¼Content Delivery Networkï¼ã¯ãWebãµã¤ãã®ã³ã³ãã³ããä¸çä¸ã«åæ£ããããµã¼ãã¼ç¾¤ããé ä¿¡ããã°ãã¼ãã«ãããã¯ã¼ã¯ã§ãã
ããã«ããããã©ãã£ãã¯ã®æ¥å¢ã«å¯¾å¿ããWebãµã¤ãã®ããã©ã¼ãã³ã¹ã¨ä¿¡é ¼æ§ãåä¸ããããã¨ãã§ãã¾ãã
CDNã¯é常ãç»åãããã¥ã¡ã³ããã¹ã¿ã¤ã«ã·ã¼ããHTMLãã¼ã¸ãã¯ã©ã¤ã¢ã³ãå´ã®ã¹ã¯ãªãããªã©ã®éçã³ã³ãã³ããé ä¿¡ããããã«ä½¿ç¨ããã¾ãã
å¤§è¦æ¨¡ãªWebãµã¤ãã¯ãç¬èªã®CDNãç¶æãã¦ãã¾ãããå°è¦æ¨¡ãªWebãµã¤ããé»åååå¼ã®ãã³ãã¼ã¯ãæåãªãããã¤ãã¼ã®ã°ã«ã¼ãããCDNãµã¼ãã¹ãå©ç¨ãããã¨ãã§ãã¾ãã
Reactãå§ããã°ããã®å ´åãWebãµã¤ããäºåã«æ§ç¯ããã¦ãããReactã³ã³ãã¼ãã³ããå«ããå¿ è¦ãããå ´åã¯ãCDNãè³¢æãªé¸æè¢ã¨ãªãã¾ãã
CDNã¯é常ã«ä¾¿å©ã§ãã»ããã¢ãããç°¡åã§ãããããå°ãªãã³ã¼ãè¡ã§ä½æ¥ãéå§ãããã¨ãã§ãã¾ãã
React CDNã¯ãReact Ecosystemã§å©ç¨ã§ãã人æ°ã®ããCDNã®1ã¤ã§ãã
ç¹ã«åå¿è ã®å ´åã¯ãCDNãªã³ã¯ã使ç¨ãããã¨ã§ãReact.jsã®ãã¹ã¦ã®æ©è½ãããã¸ã§ã¯ãã§å©ç¨ã§ãã¾ããCDNãªã³ã¯ã追å ããã¨ãå¤ãã®ä¾¡å¤ããããã¨ããããã¾ãã
CDNãã¼ã¹ã®ã¢ããã¼ãã¯ããã¼ã«ã«ãã¡ã¤ã«ã·ã¹ãã ã¸ã®ä¾åãæå°éã«æããåç´ãªReact.jsã¢ããªã±ã¼ã·ã§ã³ã使ãã¦ãããã¤ããããã«æé©ãªæ¹æ³ã¨ãªãã¾ãã
ããã¸ã§ã¯ãã«React CDNãå«ããæ¹æ³
CDNããReactã¢ããªã±ã¼ã·ã§ã³ã使ããå ´åããã¼ã«ã«ç°å¢ã«Node.jsã¾ãã¯Node.jsããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«ããå¿ è¦ã¯ããã¾ããã
åºæ¬çã«ã¯ããã¼ã«ã«HTTPãµã¼ãã¼ã使ç¨ãã¦å®è¡ãã¦ããã¾ãã
ããã¸ã§ã¯ãã«React CDNãè¨å®ãããã¨ã¯ãVanilla.JSããã¸ã§ã¯ãã«JSã¹ã¯ãªããã追å ãããã¨ã«ä¼¼ã¦ãã¾ãã
CDNã¹ã¯ãªãããindex.htmlãã¡ã¤ã«ã«è¿½å ããå¿ è¦ãããã¾ãã
æ°ããHTMLã¾ãã¯æ¢åã®HTMLãã¡ã¤ã«ãç¨æãã¾ãã
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width" /> <title>React Project</title> <link rel="stylesheet" href="style.css" /> </head> <body> </body> </html>
ãåç¥ã ã¨æãã¾ãããHTMLã®è§£æã¯ä¸ããä¸ã«æµããåæãéåæã¾ãã¯èªã¿è¾¼ã¿ã¨å®è¡ã®æéãå»¶æããªããããã®éã«JSãèªã¿è¾¼ããã¨ãã§ãã¾ãã
React.jsã«å¿ è¦ãªãã¹ã¦ã®ä¾åé¢ä¿ã¨ã¤ã³ãã¼ãã¯ãDOMãè§£æããåã«ãã¼ããã¦å®äºããå¿ è¦ãããã¾ãã
ããã§ãªãã¨ãå®è¡ä¸ã«ããã¤ãã®åé¡ãçºçãã¾ãã
headå ã«ä¸è¨3ã¤ã®ã¹ã¯ãªãããé ç½®ãã¾ãã
æ¬æ¥ã¯ãç¾å¨ã®ææ°ã§ããReact v18æå®ã¨ãªãã¾ãã以åã®ãã¼ã¸ã§ã³ã§ããã°@17ã«å¤æ´ãã¦ä¸ããã
<head> <script src="https://unpkg.com/react@18/umd/react.production.min.js" crossorigin></script> <script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js" crossorigin></script> <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> </head>
Reactã¨ã³ã³ãã¼ãã³ããReact.jsã¨ã³ã·ã¹ãã ã«ãã¼ãããã«ã¯ãReact CDNãå¿ è¦ã§ãã
3ã¤ã®ã¹ã¯ãªããããã¯
ã» Reactã®æ¬ä½
ã» DOMæä½ç¨ã®react-dom
ã»JSã®ãã©ã³ã¹ã³ã³ãã¤ã©ã§ãããBabelããèªã¿è¾¼ãã§ãã¾ãã
ã³ã³ãã¼ãã³ããDOMããªã¼ã«ã¬ã³ããªã³ã°ããã«ã¯ReactDOMãå¿ è¦ã¨ãªãã¾ãã
ãªãããã«ãå¿ è¦ãªã®ãï¼
JSXã¯ãã©ã¦ã¶ãçè§£ã§ããé常ã®JSã«ãã©ã³ã¹ãã¤ã«ããªããããæ©è½ãã¾ããã
ãã¹ã¦ã®ãã©ã¦ã¶ãã³ã³ãã¼ãã³ããèªã¿åããããã«ãJSXãåç´ãªJSã«ãã©ã³ã¹ãã¤ã«ããããã«Babel(ããã«)ãå¿ è¦ã¨ãªãã¾ãã
ãããCDNã¯ãReact Docsã«ãªã¼ãã³ã½ã¼ã¹ã¨ãã¦æ²è¼ããã¦ãã¾ãã®ã§ãã¹ã¯ãªãããã³ããããã¤ã§ã追å ãå¯è½ã¨ãªãã¾ãã
ã³ã³ãã¼ãã³ãã使ãJSXã追å
CDNã¨ãã¦Reactã使ç¨ããã³ã³ãã¼ãã³ãã®ä½æã¯ãé常ã®éçºæ¹æ³ã¨ã¯ä½ã®å¤åãããã¾ããã
npmã使ç¨ãã¦Reactã使ç¨ããå ´åã¨åãæ¹æ³ã§ãã¯ã©ã¹ã¾ãã¯é¢æ°ã³ã³ãã¼ãã³ãã使ãå¯è½ã§ãã
ãã¼ã¯ã¢ãã ãã¡ã¤ã«ã®ã©ããã« divã¿ã°ã使ããReactã³ã³ãã¼ãã³ãããã©ã°ã¤ã³ãã¦ã¬ã³ããªã³ã°ããé¨åããã¼ã¯ãã¾ãã
<body> <div id="root"></div> </body>
ãã®é¨åã«ä¸æã®IDãä¸ãã¾ãã
å½è¨äºã§ã®ãID屿§ã¯rootã¨ãã¾ãã
ãã®IDã¯ãå¾ã§JavaScriptã®ã³ã¼ãã§ãã®å ´æãç¹å®ããããã«ä½¿ç¨ãã¾ãã
ã¤ã¾ããid="root"ã¯ãã³ã³ãã¼ãã³ããè¿ãJSXã¯ãè¦ç´ å
ã®DOMã«ã¬ã³ããªã³ã°ããã¾ãã
HTMLã«é¢ãã¾ãã¦ã¯ãããã§ä»¥ä¸ã¨ãªãã¾ãã
åã³ã³ãã¼ãã³ãã®JSãã¡ã¤ã«ã®typeããããã£ããtext/babelãã«è¨å®ãããã¨ã§ãã
<body> <script type="text/babel"></script> </body>
è¨å®ããªãã¨ããã£ããæ¸ããã³ã¼ããèªã¿è¾¼ã¾ããªããªã£ã¦ãã¾ãã¾ãã
type屿§ããã®å¤ã«è¨å®ããã¨ãBabel ãJSXãåç´ãªJavaScript(ES5)ã«ãã©ã³ã¹ãã¤ã«ããã®ã«å½¹ç«ã¡ã¾ãã
詳ããã¯babelドキュメントãåç §ä¸ããã
ã¹ã¯ãªããã¯ãªãã¹ãbodyã®ä¸é¨(çµäºã¿ã°ã®ç´å)ã«é ç½®ããããã«ãã¦ä¸ããã
JavaScriptãããããããå ´åã¯ãHTMLããã¼ãããåã«ãã¹ã¦ã®JavaScriptããã¼ãããããããã¼ã¸ã®ãã¼ããæããã«é ããªãå¯è½æ§ãããã¾ãã
JavaScriptãHTMLæ¬æã®ä¸é¨ã«é ç½®ããã¨ãJavaScriptãèªã¿è¾¼ã¾ããåã«HTMLãèªã¿è¾¼ã¾ããæéãä¸ãããããããã¨ã©ã¼ãé²ãWebãµã¤ãã®å¿çæéãç縮ã§ãã¾ãã
ã§ããJavaScriptã¯HTMLã®bodyã®æå¾ã«è¨è¿°ããã®ããã¹ãã§ãããHTMLã®headã«è¨è¿°ãã¦ãå¿ ãã¨ã©ã¼ã«ãªãããã§ã¯ããã¾ããã
ããã§ã¯ã颿°ã³ã³ãã¼ãã³ãã使ãã¾ãã
<body> <div id="root"></div> <script type="text/babel"> const App = () => { return ( <div> <h1>My React App with CDN</h1> </div> ) } const container = document.getElementById("root"); const root = ReactDOM.createRoot(container); root.render(<App />); </script> </body>
See the Pen HTML React CDN by dev.K | Webã¢ããªéçºè (@enjinia_f) on CodePen.
App颿°ã«ãã£ã¦è¿ããããJavaScriptXML(JSX)ã¨å¼ã°ããå¥å¦ãªæ§æã«æ°ã¥ããããããã¾ããã
JSXã¨Reactã使ç¨ããã¨ãHTMLã¨JavaScriptãç°¡åã«çµã¿åããããã¨ãã§ãã¾ãã
1ã¤ã®ãã¬ã³ããããæ§æã¨ãªãã¾ãããä¸ç·ã«æ©è½ãã2ã¤ã®å®å ¨ã«ç°ãªãã¿ã¤ãã®æ§æãããäºã«ãªãã¾ãã
ããã¯HTMLãJavaScriptã³ã¼ãã§ç´æ¥è¨è¿°ã§ãããããHTMLã³ã¼ãã¨JSã³ã¼ããåé¢ããå¿ è¦ã¯ããã¾ããã
const container = document.getElementById("root"); const root = ReactDOM.createRoot(container); root.render(<App />);
Reactã§ã¯ãAppã³ã³ãã¼ãã³ãããã¼ã¸ã®ã«ã¼ãè¦ç´ ã«ã¬ã³ããªã³ã°ãã¾ãã
ããã¦ãã¢ããªã±ã¼ã·ã§ã³ã¯React Libraryãæä¾ãããã«ã¼ãAPIã§ããReactDOM.createRoot()ã¡ã½ããã§HTMLè¦ç´ ãåçã«ä½æãã¾ãã
rootè¦ç´ ãcontainer夿°ã§createRootã¡ã½ããã®å¼æ°ã¨ãã¦æ¸¡ããã¨ã«ãããReactã«ã¼ããæ§ç¯ãã¾ãã
ããã¯React 18ã§ã®æ°ããAPIã«ã¼ãã¨ãªã£ã¦ãã¾ãã
CDNã§ããã¯ã使ç¨ãã
CDNã§React ããã¯ã使ç¨ããå ´åã¯ãããã©ã«ãã¨ã¯ã¹ãã¼ãã§ã¤ã³ãã¼ãããã«ä½¿ç¨ãããã¨ãå¯è½ã§ãã
é常ã¯Reactããã±ã¼ã¸ããç´æ¥ã¨ã¯ã¹ãã¼ãããã颿°ãã³ã³ãã¼ãã³ãã使ç¨ããããã«ã以ä¸ã®ããã«ãããã夿°ã«æ ¼ç´ãããã¨ãæ¨å¥¨ããã¦ãã¾ãã
<script type="text/babel"> const useState = React.useState; const useEffect = React.useEffect; </script>
ä¸è¨ã®ããã«å¤æ°ã«æ ¼ç´ãããã¨ã§ãReactããã±ã¼ã¸ã®åå空éãæç¤ºçã«æå®ãããã¨ãªãã颿°ãã³ã³ãã¼ãã³ãã«ã¢ã¯ã»ã¹ã§ãã¾ãã
ãã ãããã®æ¹æ³ã¯ã³ã¼ãã®å¯èªæ§ãä½ä¸ãããå ´åããããããä½¿ç¨æã«ã¯æ³¨æãå¿ è¦ã§ãã
ã¾ããReact v17以éã§ã¯ãCDNã使ç¨ãã¦Reactãèªã¿è¾¼ãå ´åãä¸è¨ã®ãããªå¤æ°ã¸ã®ä»£å ¥ã¯å¿ è¦ããã¾ããã
Reactã®ã°ãã¼ãã«ãªãã¸ã§ã¯ããèªåçã«è¨å®ããã¾ãã
<body> <div id="root"></div> <script type="text/babel"> const App = () => { const [state, setState] = useState(0) const handleClick = () => setState(state + 1) return ( <div> ã«ã¦ã³ã: {state} <div> <button onClick={handleClick}>count up</button> </div> </div> ) } const container = document.getElementById("root"); const root = ReactDOM.createRoot(container); root.render(<App />); </script> </body>
See the Pen HTML React CDN useStateãã㯠by dev.K | Webã¢ããªéçºè (@enjinia_f) on CodePen.
Propsã®æ¸¡ãæ¹
CDNã使ç¨ãã¦ãPropsãæ¸¡ãæ¹æ³ãã¿ã¦ããã¾ãããã
<body> <div id="root"></div> <script type="text/babel"> const App = () => { const greeting = 'Welcome to the world of React.js!'; return ( <div> <Child text={greeting} /> </div> ) } const container = document.getElementById("root"); const root = ReactDOM.createRoot(container); root.render(<App />); </script> </body>
親ã³ã³ãã¼ãã³ãããåã«Props(å°éå ·)ãæ¸¡ãã¾ãã
Childã³ã³ãã¼ãã³ãã使ãã¾ãã
Child颿°ã®å¼æ°ã¨ãã¦ãPropsãåãåãã¾ãã
const Child = (props) => { return ( <div> <h2>{props.text}</h2> </div> ) }
See the Pen HTML React CDN useStateãã㯠by dev.K | Webã¢ããªéçºè (@enjinia_f) on CodePen.
以ä¸ã«CDNã使ç¨ããReactã¢ããªã§ã親ã³ã³ãã¼ãã³ãApp.jsããå¤é¨ãã¡ã¤ã«ã®åã³ã³ãã¼ãã³ãã«ãã¼ã¿ãæ¸¡ãæ¹æ³ãã³ã¼ãã¨ãã¦ç¤ºãã¾ãã
ã¾ããReactã¨ReactDOMã®CDNãèªã¿è¾¼ã¿ã¾ãã
次ã«ãApp.jsã¨ChildComponent.jsã<script>ã¿ã°ã§èªã¿è¾¼ã¿ã¾ãã
<!-- index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>React App</title> <script src="https://unpkg.com/react@18/umd/react.production.min.js" crossorigin></script> <script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js" crossorigin></script> <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> <script src="./App.js" type="text/babel"></script> <script src="./ChildComponent.js" type="text/babel"></script> </head> <body> <div id="root"></div> </body> </html>
次ã«ãApp.jsã§è¦ªã³ã³ãã¼ãã³ããå®ç¾©ãã¾ãã
ãã¡ã¤ã«ã®é層ã¯ãããã§ã¯HTMLã¨åãé ç½®å ´æã§ãæ§ãã¾ããã
greeting夿°ã«ãã¼ã¿ã代å
¥ããChildComponentã³ã³ãã¼ãã³ãã«åãååã¨ãã¦greetingãPropsã¨ãã¦æ¸¡ãã¾ãã
// App.js const App = () => { const greeting = 'Welcome to the world of React.js!'; return ( <div> <h1>My new React App</h1> <ChildComponent greeting={greeting} /> </div> ) }; const container = document.getElementById("root"); const root = ReactDOM.createRoot(container); root.render(<App />);
æå¾ã«ãChildComponent.jsã§åã³ã³ãã¼ãã³ããå®ç¾©ãã¾ãã
Propsãªãã¸ã§ã¯ãããgreetingãåãåãã表示ãã¾ãã
// ChildComponent.js const ChildComponent = ({ greeting }) => { return ( <div> <h2>{greeting}</h2> </div> ); };
ããã§ãCDNã使ç¨ãã¦å¤é¨ãã¡ã¤ã«ã«å®ç¾©ãããåã³ã³ãã¼ãã³ãã«ãã¼ã¿ã渡ããã¨ãã§ãã¾ãã
æå¾ã«ãApp.jsã®root.render()ã§è¦ªã³ã³ãã¼ãã³ããã¬ã³ããªã³ã°ãã¾ãã
注æç¹ã¨ãã¦ã¯ãCDNã使ç¨ãã¦ããããimportæ§æã¯ä½¿ç¨ã§ããªãã¨ãããã¨ã§ãã
ãã®ããã<script>ã¿ã°ã§ç´æ¥ãã¡ã¤ã«ãèªã¿è¾¼ã¿ãApp.jsã§ChildComponent.jsãç´æ¥åç
§ãã¦ãåã³ã³ãã¼ãã³ãã使ããå¿
è¦ãããã¾ãã
React CDNã使ç¨ããä¸ã§ã®æ³¨æç¹
React CDNã使ç¨ãåé¡ãªãå®è¡ããã«ã¯ã次ã®ç¹ã«æ³¨æããå¿ è¦ãããã¾ãã
CDN React.jsã使ç¨ããå ´åã¯ãCrossorigin(ã¯ãã¹ãªãªã¸ã³)屿§ãå¿ è¦ã¨ãªãã¾ãã
<script crossorigin src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
ããã¯React Docsã§ãæ¨å¥¨ããã¦ããã¾ãã
React.jsã®v16以éã§ã®ã¨ã©ã¼å¦çã¨ã¯ã¹ããªã¨ã³ã¹ãåä¸ãããã®ã«å½¹ç«ã¡ã¾ãã
æãéè¦ãªäºã¯ãReactã¢ããªã±ã¼ã·ã§ã³ãæ¬çªç°å¢ã«è¨å®ããå ´åãã¢ããªã±ã¼ã·ã§ã³å ¨ä½ãããã«ä¾åãããããCDNã¯å¸¸ã«æé©ãªé度ã§å®è¡ãç¶ããå¿ è¦ãããã¾ãã
ã¦ã¼ã¶ã¼ããã®ä½åãã®ãªã¯ã¨ã¹ããå¦çãã¦ããéãCDNãããªãã«å¿çããªããªãå ´åãããã¾ãã®ã§ã注æä¸ããã
å ãã¦ãCDNã«DoSæ»æã軽æ¸ãããµã¤ãã¼è å¨ããã£ãã·ã³ã°ãããã¼ã¿ãä¿è·ããã®ã«ååãªãã¼ã«ããããã©ããã常ã«ç¢ºèªããå¿ è¦ãããã¾ãã
ã»ãã¥ãªãã£ãæä¾ããä¿¡é ¼æ§ã®é«ããããã³ã«ãå¿ é ã¨ãªãã¾ãã
æå¾ã«
åä¸ã®HTMLãã¼ã¸ã§Reactãã»ããã¢ãããããã¨ã¯ãã¢ããªã±ã¼ã·ã§ã³ããã°ããã»ããã¢ããããããã®è峿·±ãæ¹æ³ã§ãã
create-react-app(CRA)ã®ããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«ããã ãã§ãã200MBãè¶ ããå¯è½æ§ãããã¾ãããå°ããªããã¸ã§ã¯ããæ°kbã«åãããã¨ãã§ãã¾ãã
èªåã®Webãµã¤ãã§ãåãæé ãå®è¡ã§ãã¾ãã
ã¾ãã¯ãæåããããç´ãããå ´åã¯ã空ã®HTMLãã¡ã¤ã«ã使ãã¦Reactããã¤ã§ãéå§ã§ãã¾ãã
ãã®ã¢ããã¼ãã¯ãæå°éã®ã³ã³ãã¼ãã³ãã¾ãã¯æ©è½ãå¿ è¦ã¨ããå°ããªã¢ããªã±ã¼ã·ã§ã³ã«é©ãã¦ãã¾ãã
æ¬æ ¼çãªReactã¢ããªã±ã¼ã·ã§ã³ãæ§ç¯ãã¦ããå ´åã¯ãCDNã®ä»£ããã«npmã使ç¨ãã¦ä¾åé¢ä¿ãã¤ã³ã¹ãã¼ã«ããå¿ è¦ãããã¾ãã
ãã®è¨äºã§ã¯ãæ°ããHTMLãã¡ã¤ã«ã¾ãã¯æ¢åã®Webãµã¤ãã«Reactã³ã³ãã¼ãã³ãã使ãJSXã追å ããæ¹æ³ãå¦ã³ã¾ããã
æ¬æ¥ã¯ä»¥ä¸ã¨ãªãã¾ãã
æå¾ã¾ã§ãã®è¨äºãèªãã§é ããããã¨ããããã¾ãã