[react] ๊ธฐ๋ณธ ์ •๋ฆฌ

Hยท2022๋…„ 6์›” 9์ผ
0

React

๋ชฉ๋ก ๋ณด๊ธฐ
1/7

react

๐Ÿ“Œ ํ™˜๊ฒฝ ๊ตฌ์ถ•

01. node.js ์ค€๋น„

02. react app์„ ์‹คํ–‰์‹œํ‚ฌ ํด๋”๋ฅผ ์žก๊ณ  ํ„ฐ๋ฏธ๋„์— npx create-react-app ๋„ฃ๊ธฐ

03. ์œ„ ์ด๋ฏธ์ง€๊ฐ€ ๋œจ๋ฉด ๋ !

04. ์‹คํ–‰์€ npm start

์‹คํ–‰ ์•ˆ ๋˜๋Š” ๊ฒฝ์šฐ port 3000๋ฒˆ๋Œ€์— ๋ญ˜ ์“ฐ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ธฐ!


๐Ÿ“Œ ์†Œ์Šค์ฝ”๋“œ ์ˆ˜์ • ๋ฐฉ๋ฒ•

์ง€๊ธˆ ์ ๊ณ  ์žˆ๋Š”๊ฑด ๊ฐ•์˜ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

01. ๊ธฐ๋ณธ ์ƒ์„ฑ ํŒŒ์ผ

02. index.js

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css'; // index.js์˜ css ํŒŒ์ผ 
import App from './App';
import reportWebVitals from './reportWebVitals';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

๐Ÿ“ <div class="root"><App/></div>์œผ๋กœ ๋ Œ๋”๋ง ๋œ๋‹ค๋Š” ์˜๋ฏธ

03. app.js

import logo from './logo.svg';
import './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;

๐Ÿ“ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜, ์ˆ˜์ •๋˜๋Š” ํŒŒ์ผ ์ด ํŒŒ์ผ์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. ( ์ž์„ธํ•œ ์ˆ˜์ •์€ ์•„๋ž˜ components ์žˆ๋‹ค.)
๐Ÿ“ css๋Š” index.js > index.css , app.js > app.css


๐Ÿ“Œ components ๋งŒ๋“ค๊ธฐ

app.js ํŒŒ์ผ์— header๋ฅผ ์ถ”๊ฐ€ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ

function Header() {
  //๋Œ€ ๋ฌธ ์ž ๋กœ ๊ธฐ์ˆ˜ํ•ด์•ผํ•จ
  return (
    <header>
      <h1>
        <a href="#none"></a>
      </h1>
    </header>
  );
}

๐Ÿ“ react์˜ components๋Š” ๋ฌด์กฑ๊ถŒ,,, ๋ฌด์กฐ๊ฑด ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

// app
function App() {
  return (
    <div className="App">
      <Header></Header>
    </div>
  );
}

๐Ÿ“ ํ•˜๋‹จ app.js์— components ์ด๋ฆ„์„ ํƒœ๊ทธ๋กœ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ“Œ props

๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ

function Nav(props) {
  const array = []; // ๋‹ด์•„์ค„ ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ
  for (let i = 0; i < props.list.length; i++) {
    let li = props.list[i];
    array.push(
      <li key={li.id}>
        <a href={"/read/" + li.id}>{li.title}</a>
        <p>{li.body}</p>
      </li>
    );
  }
// app
function App() {
  const list = [
    { id: 1, title: "one", body: "header" },
    { id: 2, title: "two", body: "nav" },
    { id: 3, title: "three", body: "body" },
  ];
  return (
    <div className="App">
      <Nav list={list}></Nav>
      {/*{} ""๋กœ ๊ฐ์‹ธ์„œ ๋ณด๋‚ด๋ฉด ๋ฌธ์ž์—ด๋กœ ๋ณด๋‚ด์ง€๊ณ  {}๋กœ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ*/}
    </div>
  );
}

๐Ÿ“ function components(props){} props ๊ฐ’์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋‹ด์•„์คŒ
๐Ÿ“ ๋งŽ์€ ๋ฐฉ๋ฒ•์ด ์žˆ๊ฒ ์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” for๋ฌธ array ๋งŒ๋“ค์–ด์„œ ๋‹ด์•„์คŒ
๐Ÿ“ ๋ฐฐ์—ด์„ ๋‹ด์•„์„œ ๋„ฃ์–ด์ค„ ๋•Œ ๊ณ ์œ ํ•œ key์ด ์žˆ์–ด์•ผ ํ•จ

profile
๐Ÿค˜ ๋Œ๋จธ๋ฆฌ๋„ ROCK์ด๋‹ค! ๐Ÿค˜

0๊ฐœ์˜ ๋Œ“๊ธ€