프론트엔드/React

[React] 기초(1)

tero1115 2023. 10. 4. 14:41

Node.js 설치

 

https://limjisang1115.tistory.com/152

 

Node.js 설치

https://nodejs.org/ko/download 다운로드 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org

limjisang1115.tistory.com

 

설치를 하고 cmd창을 켜서 

node --version을 입력해 노드 버전을 확인한다.


자바

 - OS 위에서 작동한다.

파이썬

 - OS 위에서 작동한다.

자바스크립트

 - 브라우저 위에서 작동한다.

node.js

 - 자바스크립트를 OS 위에서 작동하도록 만든다.

 - 자바스크립트와 같은 문법으로 코드를 작성해서 OS에서 작동

 

*원래 자바스크립트는 OS에서 작동하지않지만 node.js를 사용하면 OS위에서 작동시킬 수 있다.

자바의 의존성과 비슷한게 npm, yarn이 있다.

 


공부할 폴더에서 우클릭후 Git Bash Here 후

yarn create react-app temp-react

를 입력한다.

실행이 다 되면 temp-react 라는 폴더가 만들어져 있다.

yarn.lock 파일은 모든 개발자가 동일한 패키지 버전을 사용하도록 할 수 있다.

node_modules는 yarn을 사용할때 라이브러리가 모여있는곳 - git에 등록하지 않는다.

public에 index.html에 body에 id가 root으로 되어있다.

src폴더는 index.js와 App.js를 보면된다.

index.js 아까 봤던 root를 초기화한다.

<App /> 여기서 App은 App.js를 의미한다.

*jsx - 리액트를 사용하는 자바스크립트에서 html태그를 사용하는 방법

 

IDE를 켜서 터미널에  yarn start를 입력하면 실행이 된다.

 

 


3개의 파일만 나두고 src 안의 파일을 다 지운다.

 

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>
);

// 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();

App.js안의 내용을 지우고

function App() {
  return (
    <div>안녕하세요</div>
  );
}

export default App;

만 적고 실행을 해보면

나온다.

 

하지만 div를 두개를 적으면 에러가 난다.

return은 태그안의 태그는 가능하지만 두개의 태그는 할 수 없다. 

그래서 이런식으로 적으면

가능하다.

 

src폴더에 App.css파일을 만들고

div {
    background-color: blue;
}

를넣고 

 

App.js 파일에

import './App.css'

를 추가하면

적용이 된다.

 


src폴더에 Hello.js 추가

function Hello() {
    return <div>안녕하세요.</div>;
}

export default Hello;

App.js에서 import

import Hello from './Hello';

이렇게 하면 Hello 컴포넌트를 여러번 사용할 수 있다.

return (
    <>
      <Hello />
      <Hello />
      <Hello />
    </>
  );


function App() {

    const arr = ['가', '나', '다', '라'];

  return (
    <>
      <Hello />
      <Hello />
      <Hello />
    </>
  );
}

arr 배열안의 갯수만큼 <Hello/>를 하고싶다.

function App() {

    const arr = ['가', '나', '다', '라'];

  return (
    <>
        {arr.map(el => <Hello />)}
    </>
  );
}


index.js에 <React.StrictMode> 삭제

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

 

Hello.js에 매개변수 추가

function Hello(props) {
    console.log(props);
    return <div>안녕하세요. {props.data}</div>;
}

export default Hello;

App.js에 코드추가

return (
  <>
    {arr.map((el, index) => <Hello key={index} data={el}/>)}
  </>
);

 

*map을 쓰는데 익숙하지 않다면

function App() {

    const arr = ['가', '나', '다', '라'];
    // const arr = [<Hello />, <Hello />, <Hello />, <Hello />];

    const changeArr = () => {
        const newArr = [];
        for (const key in arr) {
            newArr.push(<Hello key={key} data={arr[key]} />);
        }
        return newArr;
    }

  return (
    <>
        {/*{arr.map((el, index) => <Hello key={index} data={el}/>)}*/}
        {changeArr()}
    </>
  );
}

이렇게 forin을 써서 할 수 있다.

 

 

'프론트엔드 > React' 카테고리의 다른 글

[React] CSS Modules  (0) 2026.03.12
[React] 기초(6) - nextjs  (0) 2023.10.05
[React] 기초(5) - route  (0) 2023.10.04
[React] 기초(4) - useEffect  (0) 2023.10.04
[React] 기초(3) - useState  (0) 2023.10.04