JSX
JSX는 자바스크립트 표준 문법이 아닌, 페이스북이 임의로 만든 새로운 문법이기 떄문에 반드시
트랜스파일러
를 거쳐야 자바스크립트 런타임이 이해할 수 있는 자바스크립트 코드로 변환됨.
JSX의 구성요소
JSXElement
JSXAttribute
JSXChilderen
JSXStrings
JSXElement
HTML 요소(element)와 비슷한 역할
JSXOpeningElement : 요소의 시작을 알림
JSXClosingELement : 요소의 종료를 알림
JSXSelfClosingElement : 요소가 시작되고, 스스로 종료되는 형태
JSXFragment : 아무런 요소가 없는 형태
요소명은 대문자로 시작하여, HTML 태그명과 사용자가 만든 태그명을 구분짓기 위함이다.
JSXElementName
JSXIdentifier
JSX 내부에서 사용할 수 있는 식별자
자바스크릭트 식별자 규칙과 동일함.
JSXNamespacedName
JSXIdentifier:JSXIdentifier의 조합
:로 묶을 수 있는 것은 한개뿐
JSXMemberExpression
JSXIdentifier.JSXIdentifier의 조합
.를 여러개 이어서 하는 것도 가능
단, JSXNamesSpacedName과 이어서 사용하는 것은 불가능
JSXAttributes
JSXElement에 부여할 수 있는 속성(Optional)
JSXSpreadAttributes
자바스크립트의 전개 연산자와 동일한 역할
JSXAttributes
속성을 나타내는 키와 값으로 표현
키는 JSXAttributeName
값은 JSXAttributeValue
JSXAttributeValue에 할당할 수 있는 값들
큰따옴표 or 작은따옴표로 구성된 문자열
AssignmentExpression(값을 변수나 객체의 속성에 할당하는 표현식)
JSXElement
props에
<Child attribute={<div></div>} />
에서{ }
로 감싸는 것은 태그가 포함된 JSX구문을 좀 더 읽기 쉽게 만들기 위한prettier
의 규칙이다.JSXFragment
JSXChildren
JSXElement의 자식 값
JSXChild
JSXChildren을 이루는 기본 단위
JSXChild에 할당할 수 있는 값들
JSXText
{, <, >, }
을 제외한 문자열 (JSX 다른 문법과 혼동을 줄 수 있음)
JSXElement
{ JSXChildExpression (optional) }
JSXStrings
HTML에서 사용가능한 문자열은 모두 JSXStrings에서도 가능함.
Last updated