์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ํ๋ก์ ํธ
- ์๊ณ ๋ฆฌ์ฆ
- ๊ฐ๋ฐ
- ๋ชจ๊ฐ์ฝ
- HTML
- JS
- ํ์ด์ฌ
- ๊ตญ๋น์ง์
- ์ฝ๋ฉํ ์คํธ
- ์ฝ๋ฉ์ ํ
- ํ๋ก ํธ์๋
- ์ฝ๋ฉ
- Python
- mongodb
- ๊ทธ๋ฆฌ๋
- KDT
- fe
- react
- ํ๋ก๊ทธ๋๋จธ์ค
- node.js
- ๋ ธ๋ง๋์ฝ๋
- javascript
- heapq
- ํฌ๋กค๋ง
- ํ ์ดํ๋ก์ ํธ
- error
- ๋ฐฑ์ค
- CSS
- ๋๋ฆผ์ฝ๋ฉ
- Til
- Today
- Total
๐ฑ → ๐ณ
[React] JSX (Javascript XML) ๋ณธ๋ฌธ
๐ JSX(Javascript XML)
: Javascript์ XML์ ์ถ๊ฐํ ๋ฌธ๋ฒ
๊ฐ๋ฐ์๋ค์ด ๊ณผ๊ฑฐ DOM ๋ฐฉ์์ผ๋ก html์ ๊ทธ๋ฆฌ๋ค๋ณด๋ ๋ฐ๋ก ๋ฉ๋์ด ์๊ฐ์ -> ๊ทธ๋์ ๋ง๋ ๋ฌธ๋ฒ
๋ณดํต ๋ฆฌ์กํธ์์๋ง ์ฌ์ฉ
html ๋ฌธ์ ๊ตฌ์กฐ๋ฅผ JS์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํจ -> ๋ฐ๋ผ์ JS ๋ด๋ถ์์๋ html์ ์ง๋ฏ ์ฝ๋ ๊ตฌ์ฑ์ด ๊ฐ๋ฅํด์ง
๐ ๊ธฐ๋ณธ DOM ๋ฐฉ์์ผ๋ก html ๊ทธ๋ฆฐ ์ฝ๋
function HelloWorldButton() {
const [isClick, setClickState] = React.useState(false);
const text = isClick ? "It's clicked" : "Hello, React world";
return React.createElement(
"button",
{ onClick: () => setClickState(!isClick) },
React.createElement("div", null, React.createElement("span", null, text))
);
}
const e = React.createElement;
const domContainer = document.querySelector("#app");
const root = ReactDOM.createRoot(domContainer);
root.render(e(HelloWorldButton));
๐ JSX๋ก ์ง ์ฝ๋
// ํจ์ํ ์ปดํฌ๋ํธ
function HelloWorldButton() {
const [isClick, setClickState] = React.useState(false);
const text = isClick ? "It's clicked" : "Hello, React world";
return (
<button onClick={() => setClickState(!isClick)}>
<div>
<span>{text}</span>
</div>
</button>
);
}
const domContainer = document.querySelector("#app");
const root = ReactDOM.createRoot(domContainer);
root.render(<HelloWorldButton />);
JSX ๋ฌธ๋ฒ 1. html์ class ๋ฃ์ ๋ className
JSX๋ ์ผ์ข ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ผ์ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉํ๋ ์์ฝ์ด์ธ class๋ผ๋ ํค์๋๋ฅผ ๋ง ์ฌ์ฉํ๋ฉด ์๋จ
๊ทธ๋์ class="" ๋ฃ๊ณ ์ถ์ผ๋ฉด className์ด๋ผ๊ณ ์จ์ผํจ
JSX ๋ฌธ๋ฒ 2. ๋ณ์๋ฅผ html์ ๊ฝ์๋ฃ์ ๋๋ {์ค๊ดํธ}
์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ
document.getElementById().innerHTML = ??
๋ฆฌ์กํธ์์๋ ๋ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ์ ์์
function App(){
let post = '๊ฐ๋จ ์ฐ๋ ๋ง์ง';
return (
<div className="App">
<div className="black-nav">
<div>๋ธ๋ก๊ทธ์</div>
<div>{ post }</div>
</div>
</div>
)
}
์ด๋ ๊ฒ ์ค๊ดํธ์์ ๋ฐ์ดํฐ๋ฐ์ธ๋ฉํ๊ณ ์ถ์ ๋ณ์๋ช ๋ง ๋ด์ผ๋ฉด๋จ
์ฐธ๊ณ , ๋ณ์์ ์๋๊ฑธ html์ ๊ฝ์๋ฃ๋ ์์ -> ๋ฐ์ดํฐ๋ฐ์ธ๋ฉ ์ด๋ผ๊ณ ํจ
JSX ๋ฌธ๋ฒ 3. html์ style์์ฑ ๋ฃ๊ณ ์ถ์ผ๋ฉด
<div style="color : blue"> ์ด๋ฐ๊ฑธ ๋ฃ๊ณ ์ถ์ผ๋ฉด
JSX ์์์๋ style={ } ์์ { } ์๋ฃํ์ผ๋ก ์ง์ด๋ฃ์ด์ผํจ
์์)
<div style={ {color : 'blue', fontSize : '30px'} }> ๊ธ์จ </div>
{ ์์ฑ๋ช : '์์ฑ๊ฐ' } ์ด๋ ๊ฒ ๋ฃ์ผ๋ฉด ๋จ
font-size ์ฒ๋ผ ์์ฑ๋ช ์ ๋์ฌ๊ธฐํธ ์ธ ์ ์์
๋ชจ๋ ๋จ์ด๋ฅผ ๋ถ์ฌ์จ์ผํ๋ฉฐ ๋ถ์ฌ์ธ ๋ ์๊ธ์๋ฅผ ๋๋ฌธ์๋ก ์นํ
ํ์ง๋ง, JSX๋ฅผ ์ฝ๊ธฐ ์ํด์๋ bebel์ด๋ผ๋ ์ปดํ์ผ๋ฌ(๋ฒ์ญ๊ธฐ) ํ์
โ Babel(๊ตฌ six to five)
: JS์ ์ปดํ์ผ๋ฌ
์์ ์ ES6 ๊ฐ ๋์ค๊ณ ๋์ ๋ช๋ช ๋ธ๋ผ์ฐ์ ๊ฐ ES6๋ฅผ ์ง์ํ์ง ์์์,
ES6 ๋ฌธ๋ฒ๊ณผ ES5 ๋ฌธ๋ฒ์ ์ถฉ๋์ด ์ฆ์์ ES6 ๋ฌธ๋ฒ์ ES5 ๋ฌธ๋ฒ์ผ๋ก ๋ณํํด ์ฃผ๋ ๊ธฐ๋ฅ์ ํ๋ ๊ธฐ๋ฅ
์์ฆ์ ES6 ๋ ๋ธ๋ผ์ฐ์ ๋ ๋ฒจ์์ ์ง์์ ๋ง์ด ํ๋ค๋ณด๋, ๋ค๋ฅธ ์ถ๊ฐ์ ์ธ ์ธ์ด๋ค์ ๋ํ ์ปดํ์ผ๋ฌ ์ญํ ํจ -> ๋ํ์ ์ผ๋ก react
'Client > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] useState vs useRef vs Variable (0) | 2022.09.30 |
---|---|
[React] React.Fragment (0) | 2022.09.30 |