Why React?
📌 React를 도와주는 라이브러리(패키지)들: Webpack, Babel
*Webpack: 모듈 번들러. 다수의 JS 파일을 하나의 파일로 합쳐주는 역할.
Babel: JS 컴파일러. JSX 등의 쉽고 직관적인 JS 문법을 사용할 수 있도록 도와주는 역할.
Create React App: React의 boiler plate.
*Bolier Plate: 이미 세팅 완료된 패키지. 프로그램을 만드는 데 필요한 패키지들을 모아놓은 패키지.
✍ Create React App을 통해 React app을 키고 꺼보자
1. terminal에 npx create-react-app reactexam1
입력
: 'reactexam1'이라는 프로젝트를 만들겠다.
설치 후
2. terminal에 npm start
를 입력
localhost 주소로 react 창이 나타남
📌 내 컴퓨터가 서버 역할을 하는 것
3. terminal에서 ctrl+c 입력
일괄 작업을 끝내시겠습니까?
에서 y 입력
파일 : App.js
import './App.css'; function App() { return ( <div className="App"> <header className="App-header"> <h2>hi react</h2> </header> </div> ); } export default App;
- JSX : React에서 사용하는 문법. JS의 변수나 함수와 같은 값을 HTML에 쉽게 넣을 수 있음.
파일 : index.js
import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; const root = ReactDOM.createRoot(document.getElementById('root')); root.render( <React.StrictMode> <App /> </React.StrictMode> );
App.js에서
export default App;
으로 내보내기 한 App 컴포넌트는
다른 파일에서import App from './App';
으로 받아올 수 있음 => ES module 시스템
📌 JSX 규칙
/
를 이용해서 꼭 닫아줘야함<image />
와 같이 열자마자 닫히는 태그들
React.fragment
로 최상위 태그 대체할 수 있음function App() { return ( <React.Fragment> <MyHeader/> <header className="App-header"> <h2>hi react</h2> </header> </React.Fragment> ); }
*혹은 <> </>
처럼 빈 태그도 사용 가능
✍ JSX와 CSS를 결합해서 스타일링 해보자
1. css 파일 import
import './App.css';
2. inline styling
function App() {
const style = {
App: {
backgroundColor: "black",
color: 'white',
},
h2 : {
color: 'red',
},
bold_text : {
color: 'green',
},
};
// 별도의 css 파일을 사용하지 않고 객체를 만들어서 inline으로 스타일 적용
return (
<div style={style.App}>
<MyHeader/>
<h2 style={style.h2}>hi react</h2>
<b style={style.bold_text} id="bold_text">React.js</b>
</div>
);
}
📌 조건부 렌더링
function App() {
const number = 5;
return (
<div>
<MyHeader/>
<h2>hi react</h2>
<b id="bold_text">
{number}는 : {number % 2 === 0? '짝수' : '홀수'}
</b>
</div>
);
}
{}
안에는 값이나 변수가 들어갈 수 있음(함수 포함)https://inf.run/qAuJ
한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지 by 이정환 Winterlood