React TIL (5)

기멜·2021년 11월 14일
0

React

목록 보기
5/24

영상 보고 적는 메모

index.html-index.js-App.js

index.html

- HTML의 엔트리 포인트
- 사용자가 우리 프로젝트를 요청하여 최초로 보여지는 HTML

index.js

- 자바스크립트의 엔트리 포인트
- HTML과 react 컴포넌트를 연결해주는 역할을 함, 중간다리

App.js

- 실제 화면에 보여지고 있는 컴포넌트

public 폴더에 index.html파일만 남기고 모두 지워도

이런 화면이 뜨는 걸 볼 수 있습니다. 어떻게 이럴 수 있을까요? 이것이 바로 index.js / indexApp.js 와 관련이 있는 동작입니다. 먼저 imdex.js부터 보겠습니다.

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render( <App /> , document.getElementById('root'));

reportWebVitals();

import 라는 의미는 어디서 가져온다. 라는 의미 from 뒤에 경로가 없이 그냥 react라고 적혀져 있습니다. 이렇게 가져오는 것은 node_modules라는 폴더에서 가져온다는 것을 알 수 있습니다. 첫번째 문장을 해석해보자면 node_modules에 있는 react 폴더에서 react를 가져오라. 이 이후에 있는
import ReactDOM from 'react-dom';
도 같은 의미 입니다.
import App from './App'; 에서 ./ 는 현재 폴더를 의미하고 index.js가 있는 폴더는 src이기에 src에 있는 App.js를 가져오겠다는 의미를 가지고 있습니다.

ReactDOM.render( <App /> , document.getElementById('root'));

여기 보시면 ReactDOM 이라고 적혀져 있습니다. 그 다음에 . 이 적혀져 있습니다. . 이런 표시는 객체에 속성에 접근할 때 사용하는 표시입니다. 즉 이것으로 보자면 우리는 이 React 부분이 어떤 객체라고 볼 수 있습니다. 그 뒤에는 render라고 적혀져있고, ( ) 소괄호가 열리고 닫힌걸 볼 수 있습니다. 자바스크립트에서 소괄호는 함수를 호출할 때 하는 문법입니다.
그래서 이 문장을 해석해보자면 reactDOM 객체에 있는 render라는 메소드에서 보내서 그 메소드를 호출한다. 라는 의미를 가지고 있습니다. 그리고 나서 이 메소드를 호출할 때 넣어주는 인자를 한 번 확인해보겠습니다.

<App />

첫 번째 인자는 App이 들어가 있습니다. 태그처럼 들어가있는데요. 리액트에서 이 문법은 컴포넌트를 의미합니다. 그래서 꺽쇠가 열리고 닫힙니다. 안에 어떤 우리가 익히 알고 있는 문법이 아니라 다른 것이 들어가 있지만 리액트의 컴포넌트를 의미한다라고 볼 수 있을 것 같습니다.

document.getElementById('root')

함수를 다른 곳에서 가져오고 싶다면 꼭

export default App;

를 적어야합니다.

JSX

  • 자바스크립트와 HTML을 합쳐놓은 듯한 형태
  • 마크업을 편리하게 작성하기 위한 문법
  • JSX로 작성한 코드는 자바스크립트가 인식할 수 없는 문법이기에 Babal 이라는 패키지를 이용해서 변환해줘야 함
<div>Hello, World!</h1>
=>
React.createElement('div',null,"Hello, World!")

장점

  1. HTML tag를 그대로 사용하기 때문에 익숙함
  2. HTML 마크업과 자바스크립트 로직을 같이 구현할 수 있음
  3. 자바스크립트 문법을 이용해서 HTML을 생성할 수 있음
  4. vs DOM + Evant

특징

  1. 하나의 부모태그
  2. 모든 태그가 셀프 클로징 가능
  3. camelCase Prorerty
  4. 자바스크립트 동작 가능
profile
프론트엔드 개발자를 꿈꾸는 도화지 위를 달리는 여자

0개의 댓글

관련 채용 정보