4. react는 어디서부터 어떤 아이디어로 출발했는가

react 만들어보기 실습 레포

'JSX는 왜 쓰는가'의 답이기도 하다

  • html 파일이 있다. 태그와 태그안의 속성인 어트리뷰트, 밸류가 문자열로 이루어져있다. 이 문자열을 브라우저가 읽어서 DOM이라는 형태를 만들고 렌더링 프로세서를 거쳐 화면에 렌더된다.

  • 자바스크립트 파일은 DOM API를 이용해서 자바스크립트로 런타임에 돔을 그린다. html을 생성한다라고도 할 수 있다.

// 예시
  const list = document.querySelector('.list-group')
  const container = document.createElement('li')
  const todoStatus = document.createElement('input')

  container.classList.add('list-group-item', 'list-group-flat')
  container.appendChild(todoStatus)

그러나, 이러한 JS 코드에는 문제가 있다.

html은 기본적으로 구조를 갖고있지만 DOM API를 이용해 html파일을 조작하는 JavaScript에는 구조가 없다.

이러한 DOM API는 복잡하고 쓰기 귀찮지만 DOM을 조작하기위해선 사용해야만 한다.

💥 DOM API는 버릴 순 없지만 그럼에도 불구하고 DOM을 쓰지 말아보자

"개발자에게 돔을 직접 제어하지 못하게 하자."

"우리가 제공하는 편리한 도구를 주고 돔은 리액트가 조작하게 하자."

다루기 어려운 포맷이 있다면 쉬운 포맷으로 바꿔서 그 쉬운 포맷을 다뤄보자.

추상화된 DOM API 라고도 할 수 있겠다.

무튼, 이런 아이디어다.

createDom

간단히 DOM을 만드는 함수까지 만들어 봤다.

하단 레포에는 jsx없이 react를 사용하는 것에서 한 단계 더 나아가 react를 구현, virtual dom 까지 간단히 다뤄보았다.

react 만들어보기 실습 레포

Last updated