자바스크립트 내부에서 표현하기 까다로웠던 XML 스타일의 트리 구문을 작성하는 데 많은 도움을 주는 새로운 문법
자바스크립트 표준 코드가 아닌 페이스북이 임의로 만든 새로운 문법
JSX는 반드시 트랜스파일러를 거쳐야 비로소 자바스크립트 런타임이 이해할 수 있는 의미 있는 자바스크립트 코드로 변환된다.
2.1.1 JSX의 정의
JSXElement
JSX를 구성하는 가장 기본 요소
HTML의 요소(element)와 비슷한 역할
JSXOpeningElement: JSXOpening으로 시작했다면 후술할 JSXClosingElement가 동일한 요소로 같은 단계에서 선언돼 있어야함.
JSXClosingElement: 반드시 JSXOpeningElement와 쌍으로 사용돼야 한다.
JSXSelfClosingElement: 요소가 시작되고, 스스로 종료되는 형태를 의미
JSXFragment: 아무런 요소가 없는 형태로, JSXSelfClosingElement 형태를 띨 수는 없다.
리액트에서 HTML 구문 이외에 사용자가 컴포넌트를 만들어 사용할 때에는 반드시 대문자로 시작하는 컴포넌트를 만들어야만 사용가능.
이는 JSXElement에 명시돼 있는 표준에는 없는 내용인데, 그 이유는 리액트에서 HTML 태그명과 사용자가 만든 컴포넌트 태그명을 구분 짓기 위해서다.
JSXAttributes
JSXElement의 요소 이름으로 쓸 수 있는 것을 의미
JSXIdentifier: JSX 내부에서 사용할 수 있는 식별자를 의미. 이는 자바스크립트 식별자 규칙과 동일. <$></$>, <_>도 가능하지만 자바스크립트와 마찬가지로 숫자로 시작하거나 $와 _외의 다른 특수문자로는 시작할 수 없다.
JSXNamespacedName: JSXIdentifier:JSXIDentifier의 조합, 즉 :을 통해 서로 다른 식별자를 이어주는 것도 하나의 식별자로 취급된다. :로 묶을 수 있는 것은 한 개뿐이다. 두 개 이상은 올바른 식별자로 취급하지 않는다.
JSXMEmeberExpression: JSXIdentifier.JSXIdentifier의 조합. 즉 .을 통해 서로 다른 식별자를 이어주는 것도 하나의 식별자로 취급된다 :로 묶는 JSXNamespacedName과는 다르게 .을 여러 개 이어서 하는 것도 가능하다. 단 JSXNamespacedName과 이어서 사용하는 것은 불가능하다.
상태 관리는 왜 필요한가?
웹 애플리케이션에서 상태로 분류될 수 있는 것들은 대표적으로 다음과 같은 것이 있습니다.
UI: 기본적으로 웹 애플리케이션에서 상태라 함은 상호 작용이 가능한 모든 요소의 현재 값을 의미합니다. 다크/라이트 모드, 라디오를 비롯한 각종 input, ...
과거 리액트 애플리케이션을 만들 때 Create React App이 각광받았지만 요즘은 서버 사이드 렌더링을 지원하는 Next.js 같은 프레임워크를 사용해 프로젝트를 만드는 것이 큰 인기를 끌고 있습니다.
이에 따라 리액트 개발자라면 리액트뿐만 아니라 서버 사이드 렌더링에 대해서...
Leave a comment