๐ฉ๐ป ๋ณธ๊ฒฉ์ ์ผ๋ก JSX ๋ฌธ๋ฒ์ ๋ํด ์ดํด๋ณด๊ธฐ ์ ์ ๋ฆฌ์กํธ ์ฝ๋๋ฅผ ๋จผ์ ์ดํด๋ณด๊ณ ์ ํ๋ค
1๏ธโฃ index.js
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
root์ render ํจ์๋ App ์ปดํฌ๋ํธ๋ฅผ ํ๋ฉด์ ๊ทธ๋ฆฌ๊ณ , ํจ์ ๋ด๋ถ์ ์๋ <React.StrictMode>๋ ์๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๋ ๊ฒฝ๊ณ ๋ฅผ ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ์ ํ๋ค
2๏ธโฃ App.js
import React from 'react';
import logo from './logo.svg';
import './App.css';
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
export default App;
App ํจ์๋ return๋ฌธ์ ๋ฐํํ๋ค ( return๋ฌธ ๋ด๋ถ์์ JSX ๋ฌธ๋ฒ์ด ๋ค์ด๊ฐ )
export default App์ผ๋ก ๋ชจ๋์ ๋นผ๋ด๋ฉด, Index.js ํ์ผ์์ <App/>๋ก ์ฌ์ฉ๋๋ค
๊ทธ๋ ๋ด JSX๋ ์ ํํ ๋ฌด์์ธ๊ฐ?
JS์ ํ์ฅ ๋ฌธ๋ฒ์ผ๋ก (HTML์ JS์ฝ๋๋ฅผ ๋ น์ฌ๋ธ ํํ)์ด๋ค
์ฝ๋๋ฅผ ์์ ํ๊ฒ ๋ ๋ ์๋์ผ๋ก ํ๋ฉด์ด ๋ฆฌ๋ ๋๋ง ๋๋ค! ( ์นํฉ ๋ก๋๊ฐ ๋์ )
Webpack Loader๋ ์ง์ ์ค์ ๋ ๊ฐ๋ฅํ๊ณ , create react-app ์์ฑ์ ์๋์ผ๋ก ํด์ค๋ค
Webpack Loader๋ ๋ค์ํ ์ข ๋ฅ ๆ
1๏ธโฃ css๋ก๋ - css๋ก๋
2๏ธโฃ file ๋ก๋ - ํฐํธ, ์ด๋ฏธ์ง, ํ์ผ ๋ฑ ๋ก๋
3๏ธโฃ babel ๋ก๋ - ES6๋ฌธ๋ฒ์ ํ๋ฉด์์ ์ฌ์ฉํ ES5๋ฌธ๋ฒ์ผ๋ก ๋ค์ด๊ทธ๋ ์ด๋ ํด์ ๋ณํ
JSX ๋ฌธ๋ฒ ๊ณต๋ถ๋ฅผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์์ํด๋ณผ๊น?
์์ ๋ด์ฉ์ด๋ฉด JSX๋ฅผ ๋ค ๋ดค๋ค๊ณ ํด๋ ๋ฌด๋ฐฉํ๋ค ( Maybe...? )
ํ๋ํ๋ ์ดํด๋ณด๋ฉด์ ์ด๋ป๊ฒ ์คํ๋๋์ง ์ ๋๋ก ์๊ณ ๊ฐ์!
1๏ธโฃ ์ฃผ์
์ฃผ์ : alt + shift + a
์ค๊ดํธ ์์ ์ฃผ์์ ๋ฌ ๋ด์ฉ์ ๋ฃ์ด์ค์ผ ํ๋ค ๐ { /* ์ฃผ์ */ }
2๏ธโฃ return ๊ตฌ๋ฌธ
return ๊ตฌ๋ฌธ์ ๋ฐ๋์ ํ๋์ฌ์ผ ํ๋ค ( ํ๋์ ํ๊ทธ๋ง ๋ฆฌํดํด์ผ ํจ )
3๏ธโฃ Fragment
div ํ๊ทธ ๋์ ์ ์ฌ์ฉํ ์ ์๋ค
4๏ธโฃ ํจ์ ๋ด๋ถ์์ ์ ์ธ๋ ๋ณ์
ํจ์์์ ๋ง๋ค์ด์ง ๋ณ์๋ ์ค๊ดํธ {์ํ๋ ๋ณ์๋ช }์ผ๋ก ์ฐธ์กฐํ ์ ์๋ค
Appํจ์ ๋ด๋ถ์ ์๋ ๋ณ์์ธ name๊ณผ age๋ฅผ ์ฐธ์กฐํ๋ ค๋ฉด {name}, {age}๋ก ํ๋ฉด ๋๋ค
5๏ธโฃ 3ํญ ์ฐ์ฐ์
If๋ฌธ ๋์ ์ 3ํญ ์ฐ์ฐ์ ์ด์ฉํ๋ค
6๏ธโฃ null
ํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๊ฒ ์์ ๊ฒฝ์ฐ null์ ์ด์ฉํ๋ฉด ๋๋ค
7๏ธโฃ undefined
โ ๏ธ undefined์ ๋ฐํํ๋ ์ํฉ์ ๋ง๋ค๋ฉด ์ ๋๋ค!
8๏ธโฃ DOM์์์ Style ๋ฃ๊ธฐ
DOM ์์์ ์คํ์ผ์ ์ง์ ๋ฃ์ ๋๋ ๋ฐ๋์ ๊ฐ์ฒดํ ๊ฐ์ฒด๋ก ๋ฌถ๊ณ ์์ฑ์ ์นด๋ฉ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค
9๏ธโฃ className
ํ๊ทธ๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์ํ ์๋จ์ผ๋ก class๋ฅผ ์ด์ฉํ์๋๋ฐ JSX์์๋ className ์ฌ์ฉํ๋ค
๐ ์ธ๋ก์ด ํ๊ทธ
ํ๋ก ์ฌ์ฉํ๋ ํ๊ทธ๋ ๋ซ๋ ํ๊ทธ๋ฅผ ๋ฐ๋์ ์์ฑํด์ผ ํ๋ค ๐ < app/ >
'React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] ๋ผ์ฐํฐ (useNavigate, Navigate, Link ๋ฑ) (1) | 2023.01.20 |
---|---|
[React] Hook(ํ ) - useState, useEffect, useRef, useReducer (0) | 2023.01.18 |
[React] state์ ์ด๋ฒคํธ ํธ๋ค๋ง (0) | 2023.01.16 |
[React] ๋ฆฌ์กํธ์ Components์ props (0) | 2023.01.15 |
[React] ๋ฆฌ์กํธ ๋ค์ด๋ก๋ํ๊ณ ์คํ์ํค๊ธฐ (0) | 2023.01.15 |