1) 코드 번들링
but 이렇게 모듈을 불러와서 사용하는 것은 원래 브라우저에는 없던 기능으로 Node.js에서 지원하는 기능이다. (import가 아닌 require라는 구문으로 패키지를 불러온다.)
-> 이러한 기능을 브라우저에서도 사용하기 위해 번들러를 사용한다.
2) 번들러
ex) 웹팩, Parcel, browserify
-> 리액트에서는 보통 웹팩을 사용하는데 편의성과 확장성이 다른 도구보다 뛰어나기 때문이다.
번들러 도구를 사용하면?
- import 또는 require 모듈을 불러왔을 때 불러오는 모듈을 모두 합쳐서 하나의 파일을 생성한다.
- 최적화 과정에서 여려 개의 파일로 분리될 수 있다.
3) 번들러 도구 웹팩
-> 파일을 불러오는 것은 로더라는 기능이 담당한다.
ex) SVG-loader, CSS-loader, babel-loader
1) JSX
< JSX의 장점 >
① 보기 쉽고 익숙하다.
② 더욱 높은 활용도
-> HTML 태그, 컴포넌트를 JSX안에서 사용할 수 있다.
2) JSX 문법
① 컴포넌트에 여러 요소가 있다면 반드시 부모 요소 하나로 감싸야 한다.
② JSX 내부에서 자바스크립트 표현식을 사용할 때 { }로 코드를 감싼다.
③ JSX 내부의 자바스크립트 표현식에서 if 문을 사용할 수 없다.
-> but 조건에 따라 내용을 렌더링할 때는 JSX 밖에서 if 문을 사용하여 사전에 값을 설정하거나 { } 안에 조건부 연산자를 사용하면 된다.
-> 조건부 연산자 = 삼향 연산자 라고도 한다.
function App() {
④ AND 연산자 &&를 사용하여 조건부 렌더링을 구현할 수 있다.
-> false 값인 0인 예외적으로 화면에 나타난다.
const number = 0;
return number && <div>내용</div>
{/* 화면에 0이 나타난다. */}
⑤ 리액트 컴포넌트에서는 함수에서 undefined만 반환하여 렌더링하는 상황을 만들면 안된다.
⑥ 리액트에서 DOM 요소에 스타일을 적용할 때는 문자열 형태로 넣는 것이 아니라 객체 형태로 넣어 주어야 한다.
-> backgroundColor로 작성한다.
⑦ JSX에서는 class가 아닌 className으로 설정하여야 한다.
⑧ JSX에서는 태그를 닫지 않으면 오류가 발생한다.
ex) input HTML 요소는 < input >< /input > 또는 < input >이라고 작성해도 작동한다.
⑨ 주석 {/ ... /}
-> 코드를 작성할 때 실수를 하면 에러 혹은 경고 메시지를 VS Code 에디터에서 바로 확인할 수 있게 한다.
-> 들여쓰기, 세미콜론 ; 등 자동으로 바꾸어 준다.