๐ฎ My first React component
๐ฒ Hello.js
import React from "react";
function Hello() {
return <div>์๋
ํ์ธ์</div>;
}
export default Hello;
import React from "react";
: ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๋ ๋ฆฌ์กํธ๋ฅผ ๋ถ๋ฌ์์ผ ํ๋ค.
export default Hello;
: 'Hello'๋ผ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ด๋ณด๋ด๊ฒ ๋ค๋ ์๋ฏธ
๐ฒ App.js
- ์ปดํฌ๋ํธ : ์ผ์ข
์ UI ์กฐ๊ฐ์ผ๋ก ์ฝ๊ฒ ์ฌ์ฌ์ฉํ ์ ์๋ค.
import React from "react";
import Hello from "./Hello";
function App() {
return (
<div>
<Hello />
<Hello />
<Hello />
</div>
);
}
export default App;
๐ฒ index.js
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import * as serviceWorker from "./serviceWorker";
ReactDOM.render(<App />, document.getElementById("root"));
ReactDOM.render
: ๋ธ๋ผ์ฐ์ ์ ์๋ ์ค์ DOM ๋ด๋ถ์ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ๊ฒ ๋ค๋ ์๋ฏธ
document.getElementById("root")
: public/index.html
๋ด๋ถ์ <div id="root"></div>
=> ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋, ๋ ๋๋ง๋ ๊ฒฐ๊ณผ๋ฌผ ์ div
๋ด๋ถ์ ๋ ๋๋ง ๋๋ ๊ฒ
๐ฎ JSX์ ๊ธฐ๋ณธ ๊ท์น
- JSX๋ ๋ฆฌ์กํธ์์ ์๊น์๋ฅผ ์ ์ํ ๋, HTML๊ณผ ๋น์ทํด ๋ณด์ด์ง๋ง ์ค์ ๋ก๋ JavaScript์ด๋ค.
๐ฒ ๊ผญ ๋ซํ์ผ ํ๋ ํ๊ทธ
- ํ๊ทธ๋ ๊ผญ ๋ซํ์์ด์ผ ํ๋ค.
- ํ๊ทธ์ ํ๊ทธ ์ฌ์ด์ ๋ด์ฉ์ด ๋ค์ด๊ฐ์ง ์์ ๋์๋, Self Closing ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ค.
๐ฒ ๊ผญ ๊ฐ์ธ์ ธ์ผํ๋ ํ๊ทธ
- ๋ ๊ฐ ์ด์์ ํ๊ทธ๋ ๋ฌด์กฐ๊ฑด ํ๋์ ํ๊ทธ๋ก ๊ฐ์ธ์ ธ์์ด์ผ ํ๋ค.
import React from "react";
import Hello from "./Hello";
function App() {
return (
<div>
<Hello />
<div>์๋
ํ๊ณ์ธ์</div>
</div>
);
}
export default App;
- ๋จ์ํ ๊ฐ์ธ๊ธฐ ์ํด ๋ถํ์ํ
div
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ง ์์ ์ ์๋ค.
=> ์ด๋ด ๋ ๋ฆฌ์กํธ์ Fragment<></>
๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
=> Fragment๋ ๋ธ๋ผ์ฐ์ ์์์ ๋ฐ๋ก ๋ณ๋์ ์๋ฆฌ๋จผํธ๋ก ๋ํ๋์ง ์๋๋ค.
๐ฒ JSX ์์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ ์ฌ์ฉํ๊ธฐ
- JSX ๋ด๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณ์๋ฅผ ๋ณด์ฌ์ค์ผ ํ ๋
{}
์ ๊ฐ์ธ์ ๋ณด์ฌ์ค๋ค.
import React from "react";
import Hello from "./Hello";
function App() {
const name = "react";
return (
<>
<Hello />
<div>{name}</div>
</>
);
}
export default App;
๐ฒ style ๊ณผ className
- ์ธ๋ผ์ธ ์คํ์ผ์ ๊ฐ์ฒด ํํ๋ก ์์ฑ
background-color
์ฒ๋ผ -
๋ก ๊ตฌ๋ถ๋์ด ์๋ ์ด๋ฆ์ backgroundColor
์ฒ๋ผ camelCase ํํ๋ก ๋ค์ด๋ฐ
- class ๋ช
์ ์ง์ ํ ๋
className=
๋ก ์ง์
import React from "react";
import Hello from "./Hello";
import "./App.css";
function App() {
const name = "react";
const style = {
backgroundColor: "black",
color: "white",
fontSize: 24,
padding: "1rem",
};
return (
<>
<Hello />
<div style={style}>{name}</div>
<div className="gray-box"></div>
</>
);
}
export default App;
๐ฒ ์ฃผ์
- JSX ๋ด๋ถ ์ฃผ์ ํํ :
{/* ์ฃผ์ ๋ด์ฉ */}
- ์ด๋ฆฌ๋ ํ๊ทธ ๋ด๋ถ์์ ์ฃผ์ ํํ :
// ์ฃผ์ ๋ด์ฉ
์ฐธ๊ณ
์ฐ์ ๋ฆฌ์กํธ๊ฐ ๊ฒ์๊ฐ์ด ์ฌ๋ฐ์ด๋ณด์ฌ์~~