![[React] JSX](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRgBeH%2FbtsJ3jhFlz6%2FfuLjMSfSzrkm6wr58u2Bck%2Fimg.png)
- ๐ JSX๋ ๋ฌด์์ธ๊ฐ์?
- ๐ฅ๏ธ JSX์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ HTML๊ณผ์ ์ฐจ์ด์
- 1. JSX์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
- 2. HTML๊ณผ์ ์ฃผ์ ์ฐจ์ด์
- a. ์๋ฐ์คํฌ๋ฆฝํธ ํํ์ ์ฌ์ฉ ๊ฐ๋ฅ
- b. class ๋์ className
- c. ์์ฑ๋ช ์ ์นด๋ฉ์ผ์ด์ค ์ฌ์ฉ
- d. Self-closing ํ๊ทธ
- e. ์กฐ๊ฑด๋ถ ๋ ๋๋ง
- ๐ค JSX์ ์ฅ์
- 1. ์ฝ๋์ ๊ฐ๋ ์ฑ ํฅ์
- 2. ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ธด๋ฐํ ํตํฉ
- 3. ๋ฆฌ์กํธ ์์ ๋ฐํ
- 4. HTML๊ณผ CSS๋ฅผ ๊ฒฐํฉํ ์คํ์ผ๋ง ๊ฐ๋ฅ
- 5. ํ์ ์คํฌ๋ฆฝํธ์ ๊ฒฐํฉ ๊ฐ๋ฅ
- ๐จ ์ฃผ์ํ ์
- ๐ ๊ฒฐ๋ก
- ๐ ์ถ๊ฐ ์ ๋ณด
๐ JSX๋ ๋ฌด์์ธ๊ฐ์?
JSX๋ JavaScript XML์ ์ฝ์๋ก, ์๋ฐ์คํฌ๋ฆฝํธ ์์์ HTML๊ณผ ์ ์ฌํ ๋ฌธ๋ฒ์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฆฌ์กํธ์ ํน๋ณํ ๋ฌธ๋ฒ์ด์์. JSX๋ฅผ ์ฌ์ฉํ๋ฉด UI๋ฅผ ์ ์ํ ๋ ๊ฐ๋ ์ฑ์ด ๋์์ง๊ณ ๋ ์ง๊ด์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ด์. ์ฌ์ค JSX๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ฅ ๋ฌธ๋ฒ์ผ๋ก, ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ๋ณํ๋ผ์. ๊ทธ ๊ฒฐ๊ณผ, ์๋ฐ์คํฌ๋ฆฝํธ์ HTML์ ์ฅ์ ์ ๊ฒฐํฉํ ํํ๋ผ๊ณ ๋ณผ ์ ์์ด์.
JSX๋ ์๋ฐ์คํฌ๋ฆฝํธ์ HTML์ด ๊ฒฐํผํ ๊ฒ๊ณผ ๊ฐ์์. ๊ฐ๊ฐ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ง๋ง, JSX๋ฅผ ํตํด ๋์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ ํธ๋ฆฌํ๊ณ ๊ฐ๋ ฅํ ํ์ ๋ฐํํ๊ฒ ๋์ฃ .
๐ฅ๏ธ JSX์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ HTML๊ณผ์ ์ฐจ์ด์
1. JSX์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
JSX๋ HTML๊ณผ ๋งค์ฐ ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, ์ค์ ๋ก๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ์ผ๋ถ๋ก ์ฒ๋ฆฌ๋ผ์. ๋ธ๋ผ์ฐ์ ๋ JSX๋ฅผ ์ง์ ์ดํดํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์, ๋ฆฌ์กํธ ์ปดํ์ผ๋ฌ๊ฐ ์ด๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํํด์ค์. JSX๋ฅผ ์ฌ์ฉํ๋ฉด HTML ํ๊ทธ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ฌ์ค์ ๋ฆฌ์กํธ ์์๋ฅผ ๋ฐํํ๋ ๊ฑฐ์์.
// JSX ์ฌ์ฉ ์์
const element = <h1>Hello, React!</h1>;
์ด ์ฝ๋๋ JSX ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ ํ๊ทธ๋ฅผ ์์ฑํ์ด์.
ํ์ง๋ง ์ค์ ๋ก๋ ์๋ฐ์คํฌ๋ฆฝํธ ํจ์ ํธ์ถ๋ก ๋ณํ๋ผ์ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง๋ผ์.
2. HTML๊ณผ์ ์ฃผ์ ์ฐจ์ด์
JSX๋ HTML๊ณผ ๋น์ทํ์ง๋ง ๋ช ๊ฐ์ง ์ค์ํ ์ฐจ์ด์ ์ด ์์ด์. ์ด๋ฅผ ์๋ฉด JSX๋ฅผ ์ฌ์ฉํ ๋ ๋ ์ ์ดํดํ ์ ์์ด์.
a. ์๋ฐ์คํฌ๋ฆฝํธ ํํ์ ์ฌ์ฉ ๊ฐ๋ฅ
JSX์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค ํ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ํํ์์ ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ด์์. {}
์ค๊ดํธ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ฝ์
ํ ์ ์์ด์. ์ด๋ฅผ ํตํด ๋์ ์ผ๋ก ๊ฐ์ ํํํ ์ ์์ฃ .
const name = "React";
const element = <h1>Hello, {name}!</h1>;
์ด ์์ ์์๋ ๋ณ์ name์ ๋ด๊ธด ๊ฐ์ JSX ์์์ ์ถ๋ ฅํ๊ณ ์์ด์.
{} ์์๋ ์ด๋ค ์๋ฐ์คํฌ๋ฆฝํธ ํํ์์ด๋ ๋ค์ด๊ฐ ์ ์์ด์, ๋์ ์ธ ์ฝํ ์ธ ์์ฑ์ด ๋งค์ฐ ์ฌ์์.
b. class ๋์ className
HTML์์๋ ์์์ CSS ํด๋์ค๋ฅผ ์ ์ฉํ ๋ class
์์ฑ์ ์ฌ์ฉํ์ง๋ง, JSX์์๋ className
์ ์ฌ์ฉํด์. ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ class
๊ฐ ์์ฝ์ด์ด๊ธฐ ๋๋ฌธ์ด์์.
// JSX์์์ ํด๋์ค๋ช
์ฌ์ฉ ์์
const element = <div className="container">Hello, React!</div>;
JSX์์๋ className์ ์ฌ์ฉํ์ฌ CSS ํด๋์ค๋ฅผ ์ ์ฉํด์.
HTML์์๋ class๋ฅผ ์ฌ์ฉํ์ง๋ง, JSX์์๋ ์ถฉ๋์ ํผํ๊ธฐ ์ํด className์ ์ฌ์ฉํด์ผ ํด์.
c. ์์ฑ๋ช ์ ์นด๋ฉ์ผ์ด์ค ์ฌ์ฉ
JSX์์๋ HTML๊ณผ ๋ฌ๋ฆฌ ์์ฑ ์ด๋ฆ์ด ์นด๋ฉ์ผ์ด์ค๋ก ์์ฑ๋ผ์ผ ํด์. ์๋ฅผ ๋ค์ด, onclick
๋์ onClick
, tabindex
๋์ tabIndex
๋ฅผ ์ฌ์ฉํด์.
// JSX์์ ์นด๋ฉ์ผ์ด์ค ์์ฑ ์ฌ์ฉ ์์
const button = <button onClick={handleClick}>Click me</button>;
JSX์์๋ HTML ์์ฑ๋ช ์ ์นด๋ฉ์ผ์ด์ค๋ก ๋ณํํด ์ฌ์ฉํด์ผ ํด์.
๋ฆฌ์กํธ๋ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์์ฑ๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ผ๊ด๋๊ฒ ์ฒ๋ฆฌํด์.
d. Self-closing ํ๊ทธ
JSX์์ ๋ซ๋ ํ๊ทธ๊ฐ ์๋ ์์๋ ๋ฐ๋์ Self-closing ํ๊ทธ๋ก ์์ฑํด์ผ ํด์. ์๋ฅผ ๋ค์ด, HTML์์ <img>
์ฒ๋ผ ๋ซ๋ ํ๊ทธ๊ฐ ์๋ ์์๋ JSX์์ <img />
ํํ๋ก ์์ฑํด์ผ ํด์.
// JSX์์ self-closing ํ๊ทธ ์ฌ์ฉ ์์
const image = <img src="image.jpg" alt="example" />;
JSX์์๋ ๋ซ๋ ํ๊ทธ๊ฐ ์๋ ์์๋ ํญ์ self-closing ํํ๋ก ์์ฑํด์ผ ํด์.
์ด ๊ท์น์ ๋ฐ๋ฅด์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ด์.
e. ์กฐ๊ฑด๋ถ ๋ ๋๋ง
JSX์์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์กฐ๊ฑด๋ถ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ์กฐ๊ฑด๋ถ๋ก ์์๋ฅผ ๋ ๋๋งํ ์ ์์ด์. ์ด๋ if๋ฌธ ๋์ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, && ์ฐ์ฐ์๋ฅผ ํตํด ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ฒ๋ฆฌํ ์ ์์ด์.
const isLoggedIn = true;
const element = <h1>{isLoggedIn ? 'Welcome back!' : 'Please sign in.'}</h1>;
์ด ์์ ์์๋ isLoggedIn ๊ฐ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ฉ์์ง๊ฐ ๋ ๋๋ง๋ผ์.
JSX๋ ์๋ฐ์คํฌ๋ฆฝํธ ํํ์์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์, ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ฝ๊ฒ ๊ตฌํํ ์ ์์ด์.
๐ค JSX์ ์ฅ์
1. ์ฝ๋์ ๊ฐ๋ ์ฑ ํฅ์
JSX๋ HTML๊ณผ ๋งค์ฐ ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ UI๋ฅผ ์ง๊ด์ ์ผ๋ก ํํํ ์ ์์ด์. ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ UI๋ฅผ ํ๋์ ํ์ผ์์ ํจ๊ป ๊ด๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์, ์ด๋ค ๋ถ๋ถ์ด ์ด๋ค UI๋ฅผ ์์ฑํ๋์ง ์ฝ๊ฒ ํ์ ํ ์ ์์ฃ .
// JSX๋ฅผ ์ฌ์ฉํ ๊ฐ๋
์ฑ ๋์ ์ฝ๋ ์์
const MyComponent = () => {
return (
<div>
<h1>๋ฆฌ์กํธ์์ JSX๋ฅผ ์ฌ์ฉํด์!</h1>
<p>JSX ๋๋ถ์ ์ฝ๋๊ฐ ๋ ์ง๊ด์ ์ด์์.</p>
</div>
);
};
์ด ์ฝ๋์์๋ JSX๋ฅผ ์ฌ์ฉํด UI ๊ตฌ์กฐ๋ฅผ ์ง๊ด์ ์ผ๋ก ๋ํ๋ด๊ณ ์์ด์.
HTML๊ณผ ๋งค์ฐ ์ ์ฌํ ํํ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์, UI ์์๋ค์ ํ๋์ ์ฝ๊ฒ ์ดํดํ ์ ์์ด์.
2. ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ธด๋ฐํ ํตํฉ
JSX๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ์์ฐ์ค๋ฝ๊ฒ ํตํฉ๋ ์ ์์ด์. ์๋ฅผ ๋ค์ด, {}
์์ ๋ณ์๋ฅผ ๋ฃ๊ฑฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํํ์์ ์ฌ์ฉํ ์ ์์ด์. ์ด๋ฅผ ํตํด ๋์ ์ธ UI๋ฅผ ๋ง๋ค ๋ ๋งค์ฐ ์ ์ฉํ์ฃ .
const name = "JSX";
const isReactFun = true;
const MyComponent = () => {
return (
<div>
<h1>Hello, {name}!</h1>
<p>{isReactFun ? "๋ฆฌ์กํธ๊ฐ ์ ๋ง ์ฌ๋ฏธ์์ด์!" : "๋ฆฌ์กํธ๊ฐ ์ด๋ ต๋ค์."}</p>
</div>
);
};
์ด ์์ ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณ์๋ฅผ JSX์์ ์ฌ์ฉํ๊ณ ์์ด์.
{} ์์ ๋ณ์๋ฅผ ์ฝ์ ํ๊ฑฐ๋ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ์กฐ๊ฑด๋ถ๋ก ๋ค๋ฅธ ๋ด์ฉ์ ๋ ๋๋งํ ์ ์์ด์.
์๋ฐ์คํฌ๋ฆฝํธ์์ ํตํฉ ๋๋ถ์ ๋์ ์ธ UI๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์์ด์.
3. ๋ฆฌ์กํธ ์์ ๋ฐํ
JSX๋ ๋ฆฌ์กํธ ์์๋ก ๋ณํ๋ผ์. ์ฆ, JSX๋ฅผ ์ฌ์ฉํ๋ฉด UI ์์๋ฅผ ๋ฆฌ์กํธ๊ฐ ์ดํดํ ์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ๋ง๋ค ์ ์์ด์. ์ด๋ฅผ ํตํด ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ด ๋งค์ฐ ์ฌ์์ง์ฃ .
const MyButton = () => {
return <button>Click me!</button>;
};
const App = () => {
return (
<div>
<MyButton />
<MyButton />
<MyButton />
</div>
);
};
MyButton ์ปดํฌ๋ํธ๋ JSX๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์กํธ ์์๋ก ๋ณํ๋ผ์.
์ด ์ปดํฌ๋ํธ๋ฅผ App ์ปดํฌ๋ํธ์์ ์ฌ๋ฌ ๋ฒ ์ฌ์ฌ์ฉํ ์ ์์ด์. ์ด๋ ๊ฒ ์ปดํฌ๋ํธ์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์์ด์.
4. HTML๊ณผ CSS๋ฅผ ๊ฒฐํฉํ ์คํ์ผ๋ง ๊ฐ๋ฅ
JSX์์๋ ์ธ๋ผ์ธ ์คํ์ผ๋ง์ ํตํด HTML๊ณผ CSS๋ฅผ ๊ฒฐํฉํ ์ ์์ด์. CSS ๊ฐ์ฒด๋ฅผ ์ ์ํ๊ณ JSX ์์์ ์ด๋ฅผ ์ ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์, ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ง์ ์คํ์ผ๋ง์ ์ฒ๋ฆฌํ ์ ์์ด์.
const style = {
color: "blue",
fontSize: "20px",
};
const MyComponent = () => {
return <h1 style={style}>JSX์์ ์ธ๋ผ์ธ ์คํ์ผ์ ์ ์ฉํด์!</h1>;
};
์ด ์์ ์์๋ CSS ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด style ์์ฑ์ ์ ์ฉํ์ด์.
JSX ๋๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์์ ์ง์ CSS ์คํ์ผ๋ง์ ๊ด๋ฆฌํ ์ ์์ด, ์ปดํฌ๋ํธ ๋จ์๋ก ์คํ์ผ์ ๊ด๋ฆฌํ ๋ ๋งค์ฐ ์ ์ฉํด์.
5. ํ์ ์คํฌ๋ฆฝํธ์ ๊ฒฐํฉ ๊ฐ๋ฅ
JSX๋ ํ์ ์คํฌ๋ฆฝํธ์ ๊ฒฐํฉํ์ฌ ์ ์ ํ์ ๊ฒ์ฌ๋ฅผ ์ง์ํ ์ ์์ด์. ์ด๋ฅผ ํตํด ์ปดํ์ผ ํ์์ ์ค๋ฅ๋ฅผ ๋ฏธ๋ฆฌ ๋ฐ๊ฒฌํ ์ ์์ด, ์ฝ๋์ ์์ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ํฌ๊ฒ ํฅ์๋ผ์.
interface Props {
title: string;
}
const MyComponent: React.FC<Props> = ({ title }) => {
return <h1>{title}</h1>;
};
์ด ์์ ์์๋ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ์ props ํ์ ์ ๋ช ์ํ๊ณ ์์ด์.
JSX์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๊ฒฐํฉํ๋ฉด, ์ฝ๋ ์์ฑ ์ ํ์ ๊ฒ์ฌ๋ฅผ ํตํด ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์์ด์.
๐จ ์ฃผ์ํ ์
JSX๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ํด์ผ ํ ๋ช ๊ฐ์ง ์ฌํญ์ด ์์ด์.
- JSX๋ HTML์ด ์๋๋ค: JSX๋ HTML๊ณผ ๋งค์ฐ ์ ์ฌํด ๋ณด์ด์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ๋ฒ์ด์์. ๋ฐ๋ผ์, HTML์ฒ๋ผ ๋ณด์ด๋๋ผ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ท์น์ ๋ฐ๋ผ์ผ ํด์. ์๋ฅผ ๋ค์ด, ์๋ฐ์คํฌ๋ฆฝํธ ์์ฝ์ด์ธ
class
๋์className
์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒ์ฒ๋ผ ๋ง์ด์ฃ . - JSX ๋ด์์๋ ํ ๋ฒ์ ํ๋์ ๋ถ๋ชจ ์์๋ง ๋ฐํ ๊ฐ๋ฅ: JSX์์๋ ๋ฐ๋์ ํ๋์ ๋ถ๋ชจ ์์๋ง ๋ฐํํ ์ ์์ด์. ์ฌ๋ฌ ์์๋ฅผ ๋ฐํํ๋ ค๋ฉด, Fragment(๋๋
<></>
)๋ก ๋ฌถ์ด์ ๋ฐํํด์ผ ํด์.
// ์ฌ๋ฐ๋ฅธ JSX ๋ฐํ ์์
return (
<>
<h1>Title</h1>
<p>This is a paragraph.</p>
</>
);
์ฌ๋ฌ ์์๋ฅผ JSX์์ ๋ฐํํ๋ ค๋ฉด ๋ฐ๋์ ํ๋์ ๋ถ๋ชจ ์์๋ก ๋ฌถ์ด์ผ ํด์.
์ด ๋, Fragment๋ฅผ ์ฌ์ฉํ๋ฉด ๋ถํ์ํ DOM ์์๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ๋ ์ฌ๋ฌ ์์๋ฅผ ๊ทธ๋ฃนํํ ์ ์์ด์.
- ์กฐ๊ฑด๋ถ ๋ ๋๋ง ์ ๋ช
ํํ ๋
ผ๋ฆฌ ํ์: JSX์์ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ ์ฌ์ฉํ ๋, ํํ์์ด
null
์ด๋undefined
๊ฐ์ ๋ฐํํ ์ ์์ด์. ์ด๋ฌํ ๊ฐ์ ๋ ๋๋งํ์ง ์๋๋ก ์ฃผ์ํด์ผ ํด์.
๐ ๊ฒฐ๋ก
JSX๋ ๋ฆฌ์กํธ์์ ์๋ฐ์คํฌ๋ฆฝํธ์ HTML์ ์ฅ์ ์ ๊ฒฐํฉํ ํน๋ณํ ๋ฌธ๋ฒ์ผ๋ก, UI๋ฅผ ์ง๊ด์ ์ด๊ณ ๋์ ์ผ๋ก ์ ์ํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํด์. HTML๊ณผ ์ ์ฌํ์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ฅ ๋ฌธ๋ฒ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ ํํ์์ ์ฌ์ฉํ๊ณ , ์์ฑ๋ช ๊ณผ ํด๋์ค๋ช ์ ๋ค๋ฅด๊ฒ ์ฌ์ฉํด์ผ ํ๋ค๋ ์ ์์ ์ฐจ์ด๊ฐ ์์ด์.
JSX๋ฅผ ํตํด ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ ๋ ๊ฐ๋ ์ฑ์ด ๋๊ณ , ๋์ ์ธ UI๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์์ด์. ๋, JSX๋ฅผ ์ ํ์ฉํ๋ฉด ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ํฌ๊ฒ ํฅ์๋๋ฉฐ, ๊ฐ๋ ์ฑ ๋์ ๋์ ์ธ UI๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์์ด์.
๐ ์ถ๊ฐ ์ ๋ณด
- JSX์ ๋ํ ๋ ๊น์ ์ดํด๋ฅผ ์ํ์ ๋ค๋ฉด, ๋ฆฌ์กํธ ๊ณต์ ๋ฌธ์์์ ์์ธํ ์ ๋ณด๋ฅผ ์ฐพ์๋ณผ ์ ์์ด์.
'Front-end > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] ์๋ช ์ฃผ๊ธฐ (0) | 2024.10.20 |
---|---|
[React] useEffect (0) | 2024.04.04 |
[React] useRef (0) | 2024.01.31 |
[React] State (1) | 2024.01.08 |
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!