๋ฆฌ์กํธ ์คํ ํ๋ฆ [ Index.js, App.js, Index.html ]
๐ฅ 3๊ฐ์ ํ์ผ์ creat-react-app ํ๋ฉด ์๋์ผ๋ก ํ์ผ์ด ์์ฑ๋๋ค
๐ฅ public ํด๋ ์์ index.html ํ์ผ์ด src ํด๋ ์์ App.js, index.js ํ์ผ์ด ์๋ค
๐ฅ index.js
์ ์ผ ์์์์ด๋ฉฐ ๊ฐ์ฅ ๋จผ์ react์์ ์คํ๋๋ ํ์ผ์ด๋ค
๋ฉ์ธ ํ๋ก๊ทธ๋จ์ด๋ค
// ํ์ํ ๋ถ๋ถ๋ง ์์ฑ
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(<App />, document.getElementById('root'));
๐ฅ App.js
์ปดํฌ๋ํธ๋ฅผ ์ ์ํ๋ ํ๋ก๊ทธ๋จ์ด๋ค
// ํ์ํ ๋ถ๋ถ๋ง ์์ฑ
function App(){ // App() >> <App/> 'JSX๋ฌธ๋ฒ'
return <div>hi</div>;
}
export default App;
๐ฅ index.html
index.js์ ์ํด ๋ ๋๋ง ๋ ๊ฒฐ๊ณผ๊ฐ ํ๋ฉด์ ๋ณด์ด๊ฒ ๋๋ค
// ํ์ํ ๋ถ๋ถ๋ง ์์ฑ
<body>
<div id="root"></div>
</body>
๐ฅ package.json
ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ์ค์ ํ์ผ์ด๋ฉฐ json ํ์์ผ๋ก ๋์ด์๋ค
"scripts": {
"start": "react-scripts start", // ๋ฆฌ์กํธ ์คํ
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
๐ฅ ๋ ๋๋ง ์ด๋? : ์ฝ๋๋ก ์ ์๋ ๋ด์ฉ์ด ์ค์ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ๊ทธ๋ ค์ง๋ ๊ณผ์ ์ด๋ค
๐ฅ ์คํ ํ๋ฆ ์ดํด
- (npm start or yarn start)๋ฅผ ํ๋ฉด package.json ํ์ผ ์์ “react-scripts start” ๊ฐ ์คํ๋๋ค
- react-scripts start๋ index.js ํ์ผ์ ์คํ์ํจ๋ค
- index.js ํ์ผ์๋ ReactDOM.render() ํจ์๊ฐ ์๋๋ฐ render > ๋ฌด์ธ๊ฐ๋ฅผ ์ถ๋ ฅ์ํจ๋ค๋ ๋ป์ด๋ค
- ํจ์ ์์๋ ๋ ๊ฐ์ ํ๋ผ๋ฏธํฐ๊ฐ <App/>, document.getElementById('root') ์ด๋ ๊ฒ ๋์ด์๋ค
ํ์ด์ ๋ณด๋ฉด ReactDOM.render() ํจ์๊ฐ <App/> ์ปดํฌ๋ํธ๋ฅผ ์ถ๋ ฅ์ํฌ ๊ฑด๋ฐ ์ด๋์? document.getElementById('root') ์ด๊ณณ์! ์ด๊ณณ์ ์ด๋? index.html ํ์ผ ์์ Id ๊ฐ root ์ธ ๊ณณ์ - <App/>๋ App.js์ด๊ณ document.getElementById('root')๋ index.html์ด๋ค
์ฆ App.js ์์ ์๋ ์ปดํฌ๋ํธ๋ค์ index.html ํ์ผ์ id ๊ฐ root ์ธ ๊ณณ์ ๋ ๋๋ง ์ํจ๋ค๋ ์๋ฏธ์ด๋ค
โป ์์ฝํ์๋ฉด, ReactDOM.render ํจ์, ์ฒซ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ ๋ ๋๋ง ํด๋ผ!
/** index.js ํ์ผ, ํ์ํ ๋ถ๋ถ๋ง ์์ฑ */
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
// index.js ์ ์๋ ์ฝ๋
ReactDOM.render(<App />, document.getElementById('root'));
// ์์ ์ฝ๋๋ฅผ ํ์ด์ ์ดํด ํ๋ ค๊ณ ์์ฑํ ์ฝ๋
ReactDOM.render(
<body>
<div id="root"> // index.html
<div>hi</div> // app.js ํ์ผ์์ ์ปดํฌ๋ํธ
</div>
</body>
);
๐ฅ ์คํ ํ๋ฆ
1. npm start or yarn start(๋ฆฌ์กํธ ์คํ)
2. index.js๊ฐ ์คํ๋๋ฉด์ ReactDOM.render() ํจ์๊ฐ ์คํ
3. render() ํจ์๊ฐ <App/> ์ฆ, App.js ์ ์๋ ๋ชจ๋ ์ปดํฌ๋ํธ๋ค์ index.html ํ์ผ์ id๊ฐ "root"์ธ ๊ณณ์ ๊ทธ๋ฆฐ๋ค
4. ์ต์ข ์ ์ผ๋ก ๋ชจ๋ ์ปดํฌ๋ํธ๋ค์ด ๊ทธ๋ ค์ง index.html ํ์ผ์ด ํ๋ฉด์ ๋ ๋๋ง ๋๋ค
์ฃผ์ โ ์ด๋ index.html ์ ์๋ id๋ฅผ ๋ฐ๊พธ๋ฉด ์๋ฌ๊ฐ ๋๋ค
โป Reference
https://jiwon709.tistory.com/21
[์ ํ๋ธ] https://www.youtube.com/watch?v=qCADzDFiVgo