리액트/JSX

ch01.JSX

webmaster 2021. 7. 20. 23:35
728x90

Yarn 패키지가 자동으로 생성해준 React코드 살펴보기

import React from 'react';//리액트를 불러와서 사용 가능 하도록 해준다.
import logo from './logo.svg';//svg, css import
import './App.css';


function App() {//function 키워드를 통해 컴포넌트를 만든다 -> 함수형 컴포넌트
  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;
  • 번들러 : 파일을 묶듯이 여러개의 모듈들을 연결한다.
    • 대표적인 번들러 : 웹팩,parcel,browserify(리액트에서는 웹팩이 추세이다)
    • 번들러 도구를 사용하면 import로 모듈을 불러왔을때 불러온 모듈을 하나로 합쳐 하나의 파일을 생성해 준다
    • 웹팩을 사용하게 되면 SVG,CSS 파일도 불러서 사용가능(웹펙의 로더라는 기능이 담당)
  • Return 하는 값 
    • JSX : 자바 스크립트의 확장 문법이며 XML과 유사하다
    • 브라우저에서 실행되기 전에 코드가 번들링 되는 과정에서 바벨을 사용하여 일반 자바스크립트 형태의 코드로 변환된다.
    • //예시
      
      functio App(){
             return (
              <div>
              Hello<b>react</b>
              </div>
        )
        /* 변형 후*/
        function App(){
          return React.createElement("div",null,"Hello ",React.createElement("b",null,"react"));
        }
       }

JSX의 장점

  • 보기 쉽고 익숙하다
  • 높은 활용도
    • div나 span 같은 HTML 태드를 사용할 수 있을 뿐 아니라 앞으로 만들 컴포넌트도 JSX안에서 작성 할수 있다.
    • index.js를 살펴보면 App컴포넌트를 HTML태그 쓰듯이 사용한다
    • import React from 'react';
      import ReactDOM from 'react-dom';//ReactDOM.render : 컴포넌트를 페이지에 렌더링,react-dom모듈을 불러와 사용 가능 
      import './index.css';
      import App from './App';
      import reportWebVitals from './reportWebVitals';
      //parameter 1 : 페이지에 랜더링할 내용(JSX형태), parameter 2 : 해당 JSX 랜더링할 document 내부요소 설정 
      //현재는 root로 설정이 되어있는데 root는 public/index.html파일 밑에 <div>의 id이다.
      //<React.StrictMode> : 리액트프로젝트에서 리액트 레거시기능들을 사용하지 못하게 하는 기능 -> 문자열 ref,componentWillMount 등 나중에 완전히 사라지게될 옛 기능 사용시 경고 출력
      ReactDOM.render(
        <React.StrictMode>
          <App />
        </React.StrictMode>,
        document.getElementById('root')
      );

 

728x90

'리액트 > JSX' 카테고리의 다른 글

ch05.ESLint와 Prettier  (0) 2021.07.21
ch04.JSX 문법(3)  (0) 2021.07.21
ch03.JSX 문법(2)  (0) 2021.07.20
ch02. JSX 문법(1)  (0) 2021.07.20