ABOUT ME

96년생 컴공

Today
-
Yesterday
-
Total
-
  • React 시작하기 (2)
    FrameWork/ReactJS 2023. 2. 12. 18:35

    개요

     

    ' npx create-react-app ' 을 통해 설치된 개발환경 디렉토리 살펴보기

     

    React app이 어떻게 구동되는지 간략하게 살펴보기

     


     

    디렉토리 살펴보기

     

    설치된 디렉토리

    node_modules

    -  라이브러리를 모은 폴더

     

    public

    -  정적 파일을 담는 곳. (이미지 등)

    -  앱 밖에서 사용하는 이미지는 이곳에 담는다. (favicon 등)

    -  파일명을 써주기만 해도 import가 가능하다

     

    src

    -  개발과 관련된 폴더

    -  보통 이 폴더를 많이 사용한다

     


     

    React 구동방식 알아보기

     

    React 앱의 돌아가는 순서를 역으로 설명하면 다음과 같다

     

    1. public폴더의 index.html

    2. src폴더의 index.js

    3. src폴더의 app.js

     


     

    1. index.html

    이 파일이 화면에 보여지는 파일이다.

     

    <div id="root"></div>

     

    index.html 파일을 살펴보면 위와 같은 div 블록이 있는데 이 블록이 현재 브라우저에 보여지는 것이다.

     

    root div

     

    하지만 div 블록 안에 아무것도 없는데 어떻게 저런 화면이 보이는걸까?

     

    다음 파일들을 살펴보면 알 수 있다.


     

    2. 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();

     

    import App from './App';
     
    const root = ReactDOM.createRoot(document.getElementById('root'));
     
    root.render()

     

    이 파일에서 유의깊게 봐야 할 구문들이다.

    getElementByid를 통해 id가 root인 요소인 엘리먼트 객체를 파악하고

    render 함수를 통해 객체(<App />)를 화면에 랜더링 해준다는 의미이다.

    ( <React.StrictMode>  부분은 신경 안써줘도 된다. )

     

    즉, <App / > 부분을 index.html 파일의 root div에 넣어서 보여준다는 말인데, 

    <App / >이 바로 App.js 파일이다.

     


     

    3. 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;

     

    export default App;

    -  App이란 이름으로 export 할께요~

    -  위 구문을 통해 index.js에서 App.js파일을 가져다 쓸 수 있다!

     

    코드를 보면 브라우저에 띄워지는 문구들이 보인다!!

    위 코드의 Learn React를 수정해보자

     

     

    수 - 정

     

    정말 브라우저에 반영이 되는 것을 확인할 수 있다.

     

     

     

    'FrameWork > ReactJS' 카테고리의 다른 글

    [React + Spring] 데이터 전송 - axios post  (0) 2023.03.06
    React 시작하기 (1)  (0) 2023.02.11

    댓글

Designed by Tistory.