๋ชฉ์ฐจ
2023.05.05 - [๐ | WEB DEV/React] - [React] 0. React๋ฅผ ์ฌ์ฉํ๋ ์ด์ & ์ด๊ธฐ ์ธํ
๋ณธ๊ฒฉ์ ์ผ๋ก React๋ฅผ ์ด์ฉํด ์นํ์ด์ง๋ฅผ ๋ง๋ค์ด๋ณด์!
1. JSX
์น์ฌ์ดํธ์ ๋ผ๋๋ฅผ ๊ตฌ์ถํ ๋ html๊ณผ css๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ์ฑํ๋ค.
React๋ผ๊ณ ํด์ ๋ค๋ฅผ ๊ฒ์ ์๋ค! ๋๊ฐ์ด html๊ณผ css๋ฅผ ์ด์ฉํ๋ค.
ํ์ง๋ง ๋ค๋ฅธ ์ ์ ์ ๋ฒ ํฌ์คํธ์์ ๋ค๋ค๋ ๊ฒ ์ฒ๋ผ jsํ์ผ์ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
์ด๊ฒ์ด ๋ฐ๋ก JSX์ด๋ค.
JSX(JavaScript XML)๋ JS์ XML์ ์ถ๊ฐํ ๋ฌธ๋ฒ์ด๋ค.
JSX์ XML ์ฝ๋๋ฅผ ์ ๋ ฅํ๋ฉด ๋ธ๋ผ์ฐ์ ์์ ์คํํ๊ธฐ ์ ๋ฐ๋ฒจ์ ํตํด ์ผ๋ฐ jsํํ์ ์ฝ๋๋ก ๋ณํ๋๋ค.
App.js
import './App.css';
function App() {
return (
<div className="App">
...
</div>
);
}
export default App;
์์ ๊ฐ์ด ํ๋์ div ํ๊ทธ ๋ง์ ๋จ๊ฒจ๋๊ณ ์์ํด๋ณด์!
์ด๋ App()์์ returnํ๋ ํ๊ทธ๋ 1๊ฐ๋ก ๊ฐ์ธ์ ธ ์์ด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
App.js๊ฐ index.js์ render() ํจ์ ์์์ ํธ์ถ์ด ๋๋๋ฐ
์ด๋ ํ ๊ฐ์ ํ๊ทธ๋ก ๊ฐ์ธ์ ธ ์์ด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
css ํ์ผ ์ ์ฉ์ ์ ์ฝ๋์์ ์ ์ ์๋ฏ App.css๋ฅผ importํ์ฌ ํ์ฉํ๋ค.
์ด์ ์์๋์ด์ผ ํ JSX์ ๋ฌธ๋ฒ ํน์ง์ ๋ํด์ ์ดํด๋ณด์.
JSX ๋ฌธ๋ฒ ํน์ง_1 ) Html ํ๊ทธ์ class๋ฅผ ๋ถ์ฌํ ๋์๋ className=' '
๊ธฐ์กด html๊ณผ์ ์ฐจ์ด์ ์ค ํ๋๋ class ์ ํ์๋ฅผ ๋ถ์ฌํ ๋ className์ ์ด์ฉํด์ผํ๋ค๋ ๊ฒ์ด๋ค.
์ด๋ JSX๊ฐ ๊ฒฐ๊ตญ JS์ด๊ธฐ ๋๋ฌธ์ ๋ด๋ถ์์ ํด๋์ค์ ๊ตฌ๋ถ์ ํ๊ธฐ ์ํจ์ด๋ค.
JSX ๋ฌธ๋ฒ ํน์ง_2 ) ๋ณ์๋ฅผ Html์ ํ์ฉํ ๋์๋ ์ค๊ดํธ{ }
js์ ๋ณ์์ ๋ด๊ฒจ์๋ ๊ฒ์ Html์ ์ ์ฉํ์ฌ ํ์ฉํ ์ ์๋ค.
์ด๋์๋ ์ค๊ดํธ์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉํ๊ณ ์ถ์ ๋ณ์๋ช ์ ๋ด์ผ๋ฉด ๋๋ค.
{ ๋ณ์๋ช }์ ํํ์ด๋ค!
App.js
import logo from './cat-face.svg';
import './App.css';
const author = "KASSID";
function App() {
return (
<div className="App">
<div className="nav-container">
<div className="nav">
<div className="logo-container">
<img className="logo" src={logo} alt="logo" />
</div>
<h1>{author} MUSIC</h1>
<div className="title-container"></div>
</div>
</div>
</div>
);
}
export default App;
์ด๋ฏธ์ง ํ์ผ์ logo์ ๋ด๊ณ , ์์ฑ์ ๋ช ์ author์ ๋ด์๋ค. ๊ทธ๊ฒ์ ํ์ฉํ ์์์ด๋ค.
JSX ๋ฌธ๋ฒ ํน์ง_3 ) ํ๊ทธ ๋ด style ์ง์ ์ถ๊ฐ style = { { ์คํ์ผ object } }
๊ธฐ์กด์ style="์์ฑ๋ช : ๊ฐ" ์ ํํ๊ฐ ์๋
style={ {์์ฑ๋ช : '๊ฐ'} }์ ํํ์ด๋ค.
์ด๋ ์ฃผ์ํ ์ ์ ์์ฑ๋ช ์ CamelCase๋ก ์์ฑํด์ผํ๋ค๋ ๊ฒ์ด๋ค.
์ฆ, font-size, font-weight์ ๊ฐ์ ์์ฑ ๋ค์ fontSize, fontWeight ๋ฑ์ผ๋ก ๋ฐ๊พธ์ด์ ๊ธฐ์ ํด์ผํ๋ค.
<div style={ {fonstSize: '1rem', color: '#333')} }>
'๐ | WEB DEV > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] 4. ๋์ ์ธ UI ์ ์ํ๊ธฐ (0) | 2023.05.28 |
---|---|
[React] 3. ์ปดํฌ๋ํธ (Component) (0) | 2023.05.28 |
[React] 2-1. array state ์ ๋ ฌํ๊ธฐ ( .sort()ํ์ฉ) (0) | 2023.05.27 |
[React] 2. state (๋ณ์, array, object) (0) | 2023.05.26 |
[React] 0. React๋ฅผ ์ฌ์ฉํ๋ ์ด์ & ์ด๊ธฐ ์ธํ (0) | 2023.05.05 |
๋๊ธ