참고)
node -v
npm -v
설치방법) [TIL-29] Node-Express 1
CRA 설치
npx create-react-app 프로젝트명
해당 프로젝트로 이동
cd 프로젝트명
로컬 서버 띄우기
npm run start
-> 이 화면이 나오면 성공! (가운데 로고가 빙글빙글 돌아간다)
//App.js 파일
import logo from "./logo.svg";
import "./App.css";
//App.css에 스타일이 적용되어있다.
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
export default App;
//index.js 파일
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
reportWebVitals();
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<!-- 위 사진에서의 id가 root인 div -->
<div id="root"></div>
</body>
</html>
import React from 'react'
class Component extends React.Component {
render() {
return (
<div>
<h1>Hello world</h1>
</div>
)
}
}
export default Component
import React from 'react'
function Component(){
return(
<div>
<h1>Hello world</h1>
</div>
)
}
export default Component
/src/App.js
//컴포넌트 없이 정의한 App()
function App() {
return (
<div>
<header>
<h1><a href="/">WEB</a></h1>
</header>
</div>
);
}
//<header>~</header> 부분을 Header라는 컴포넌트로 작성
//html 코드를 return하는 함수를 만든다.
function Header(){
return <header>
<h1><a href="/">WEB</a></h1>
</header>
}
//Header 컴포넌트를 적용한 App()
function App() {
return (
<div>
<Header></Header>
<Header></Header>
<Header></Header>
</div>
);
}
→코드가 훨씬 효율적으로 변했다!
<div style={{color:"red"}}>hello</div>
<div/>
<></>
)<>
<div className="loginBtn" onClick={() => console.log("click")}>Login</div>
<br />
<div style={{backgroundColor: "grey", height: "10px"}} />
</>
컴포넌트를 만들면서 리액트가 어떤 느낌인지 알 것 같은 기분이다.
열심히 연습해서 빨리 익숙해지면 좋겠다!