soowanlog

React 본문

프론트엔드/React

React

개발자솬
프론트엔드/React

React

개발자솬 2024. 3. 9. 20:03
728x90
반응형
  • React란?

Javascript를 기반으로 하는 오로지 view만을 담당하는 Library입니다.

그만큼 내장되어 있는 기능이 부족해 3rd-party Library(react-router-dom, redux)를 함께 사용합니다.

 

React와 같은 프론트엔트 Library나 Framework를 사용하는 가장 큰 이유 중 하나는 UI를 자동으로 업데이트 해준다는 점입니다. React는 UI를 자동으로 업데이트하는 과정에서 Virtual DOM을 통해 최적화를 구현합니다.

※ Virtual DOM


React가 화면을 업데이트 하는 과정을 조금 더 효율적으로 수행하기 위한 기술임.

DOM을 반복적으로 직접 조작하면 그만큼 브라우저가 렌더링을 자주 하게 되고, 그만큼 PC 자원을 많이 소모하게 되는 문제를 해결하기 위한 기술임.

 

  • React의 등장배경

- 1세대 프론트엔드 기술 :

기본적인 HTML, CSS, Javascript로 DOM을 조작하고 이벤트를 발생시켰습니다.

 

- 2세대 프론트엔드 기술 :

웹이 발전하여 DOM의 조작이 빈번하게 발생함에 따라 jQuery 기술이 등장하게 됐습니다.

결국 jQuery는 DOM을 조작한다는 행위에서 벗어나지 못해서 점점 복잡해지는 환경에서 한계에 도달했습니다.

 

- 3세대 프론트엔드 기술 :

jQuery 한계 이후, 패러다임을 완전히 바꾸는 새로운 프레임워크를 요구함에 따라 Angular, Vue와 같은 Framework와 React 같은 Library가 등장하게 됐습니다.

 

  • JSX란?

JSX(Javascript Syntax Extension)는 Javascript를 확장한 문법으로 Javascript와 HTML을 합쳐놓은 듯한 형태로 가독성이 높고 작성하기가 쉽습니다.

그러나 JSX로 작성한 코드는 Javascript가 인식할 수 없는 문법이기에 Babel이라는 패키지를 이용해서 변환해줘야 합니다.

// JSX
<div>Hello World</div>

// Babel
React.createElement('div', null, "Hello World")

JSX는 HTML tag를 그대로 사용하기 때문에 익숙하며, HTML 마크업과 Javascript 로직을 같이 구현할 수 있습니다.

Javascript 문법을 이용해서 HTML을 생성할 수 있으며 기존의 DOM + Event 방식보다 훨씬 간편하게 UI를 구성할 수 있습니다.

 

  • JSX 문법

- 반드시 부모 요소 하나가 감싸는 형태

// 에러 케이스
function App() {
  return (
    <div>Hello</div>
    <div>World</div>
  );
}
// 정상 코드1
function App() {
  return (
    <div>
      <div>Hello</div>
      <div>World</div>
    </div>
  );
}

// 정상 코드2
function App() {
  return (
    <>
      <div>Hello</div>
      <div>World</div>
    </>
  );
}

 

- Javascript 표현식

// 유효한 모든 Javascript 표현식을 넣을 수 있음
function App() {
  const text = "World";
  return (
    <>
      <div>Hello</div>
      <div>{text}</div>
    </>
  );
}

 

- camelCase 프로퍼티 명명 규칙 사용

function App() {
  const style = {
    fontSize: "2rem",
    border: "1px solid black",
    borderRadius: "5px"
  }
  return (
    <div style={style}>Hello World</div>
  );
}

참    고    자    료

- React란 무엇인가? | 개발자 올라프

 

- 2. JSX란? (정의, 장점, 문법) | 갓대희의 작은공간

728x90
반응형