React

React.js beta docs 스터디 CH1 Describing UI

Asset Type
File Type
When to use
Reference
Created by
Created time
2022/10/15 12:38
Last edited time
2022/10/15 12:46

JSX로 마크업 작성하기

수년 동안 웹 개발자는 콘텐츠를 HTML로, 디자인을 CSS로, 논리를 JavaScript로 유지하면서 종종 별도의 파일에 보관했습니다! 페이지의 논리가 JavaScript에서 별도로 존재하는 동안 콘텐츠는 HTML 내부에 마크업되었습니다.
웹이 보다 대화식으로 바뀌면서 논리가 점점 더 콘텐츠를 결정했습니다. JavaScript가 HTML을 담당했습니다! 이것이 React에서 렌더링 로직과 마크업이 같은 장소(컴포넌트)에 함께 존재하는 이유입니다.
버튼의 렌더링 로직과 마크업을 함께 유지하면 편집할 때마다 서로 동기화된 상태를 유지할 수 있습니다. 반대로, 버튼의 마크업과 사이드바의 마크업과 같이 관련이 없는 세부 사항은 서로 격리되어 있으므로 둘 중 하나를 자체적으로 변경하는 것이 더 안전합니다.
JSX는 HTML과 많이 유사하지만 약간 더 엄격하고 동적 정보를 표시할 수 있습니다. 이것을 이해하는 가장 좋은 방법은 일부 HTML 마크업을 JSX 마크업으로 변환하는 것입니다.
JSX와 React는 별개입니다. 종종 함께 사용되지만 서로 독립적으로 사용할 수 있습니다 . JSX는 구문 확장이고 React는 JavaScript 라이브러리입니다.
JSX의 규칙
1. 단일 루트 요소 반환
이 빈 태그를 프래그먼트라고 합니다. 프래그먼트를 사용하면 브라우저 HTML 트리에 흔적을 남기지 않고 항목을 그룹화할 수 있습니다.
여러 JSX 태그를 래핑해야 하는 이유는 무엇입니까?
JSX는 HTML처럼 보이지만 내부적으로는 일반 JavaScript 객체로 변환됩니다. 함수에서 두 객체를 배열로 래핑하지 않고는 반환할 수 없습니다. 이것은 두 개의 JSX 태그를 다른 태그나 조각으로 래핑하지 않고는 반환할 수 없는 이유를 설명합니다.
2. 모든 태그 닫기
3. camelCase 의 모든 것!
JSX는 JavaScript로 바뀌고 JSX로 작성된 속성은 JavaScript 객체의 키가 됩니다. 자신의 컴포넌트에서 종종 이러한 속성을 변수로 읽어들일 수 있습니다. 그러나 JavaScript는 변수 이름에 제한이 있습니다. 예를 들어 이름에 대시를 포함하거나 와 class 같은 예약어를 사용할 수 없습니다.
이것이 React에서 많은 HTML 및 SVG 속성이 camelCase로 작성되는 이유입니다. 예를 들어, stroke-width대신 strokeWidth. class는 예약어 이므로 React에서는 해당 DOM 속성className 의 이름을 따서 대신 작성합니다.
역사적 이유로 속성은 대시를 사용하여 HTML에서와 같이 작성됩니다 aria-*.data-*
전문가 팁: JSX 변환기 사용
변환기 를 사용 하여 기존 HTML 및 SVG를 JSX로 변환하는 것이 좋습니다. 변환기는 실제로 매우 유용하지만 JSX를 혼자서 편안하게 작성할 수 있도록 무슨 일이 일어나고 있는지 이해하는 것은 여전히 가치가 있습니다.

중괄호가 있는 JSX의 JavaScript