[React] JSX

Dorong·2023년 3월 19일
0

React

목록 보기
4/29
post-thumbnail

✅ 개념

  • 자바스크립트 확장 문법
  • XML과 비슷하게 생겼음
  • 브라우저에서 실행되기 전 코드가 번들링되는 과정에서 바벨을 사용해 일반 자바스크립트 형태의 코드로 변환
    => * 바벨(Babel)
    • 주로 호환성 등을 이유로 ES6 이후 코드를 이전 버전으로 변환시키는 툴
    • 그 외에 대표적인 기능 중 하나가 JSX 코드를 브라우저가 이해하기 쉽도록 ES5로 변환시키는 역할
    • create-react-app에서 기본 설치
  • HTML 코드를 작성하는 것과 비슷해 작성이 쉽고 가독성이 높음
  • jsx로 만든 컴포넌트들을 jsx 안에서 작성할 수 있음

✅ 규칙

🔸 return

  • 여러 요소가 있다면 반드시 한 부모 요소로 감싸줘야함
  • Virtual DOM에서 컴포넌트 변화를 감지해 낼 때 효율적으로 비교할 수 있도록 하나의 DOM 트리 구조로 이루어 져야 한다는 규칙
  • div 혹은 Fragment 태그 주로 사용
    => Fragment 태그는 빈태그로 대체 가능 => < >< / >

🔸 JavaScript 표현식

  • 중괄호 {}를 활용해 자바스크립트 표현식 사용

🔸 if문 대안

  • jsx 내부 자바스크립트 표현식에서는 if문 사용이 불가
  • 대안1. 삼항 연산자
  • 대안2. AND 연산자 (&&)
    => 특정 조건을 만족하면 보여주고, 아니면 아무것도 렌더링 하지 않는 상황에 유용
    => && 앞 조건이 거짓이면 뒷내용을 렌더링하지 않음
    => falsy한 0은 렌더링 한다는 유의점이 있음

🔸 undefined 반환 안돼용

  • 함수에서 undefined만 반환해서 렌더링 하면 오류가 발생
  • OR 연산자 사용 (||)
    => || 앞이 undefined일 경우 렌더링 할 것을 미리 지정해 오류 방지

🔸 인라인 스타일링

  • 객체 형식으로 지정
  • '-'이 들어간 속성들은 이를 없애고 카멜표기법 사용

🔸 className

  • 클래스를 지정할 때 class가 아닌 className 사용
  • 예전에는 완전 오류가 발생했지만, 지금은 class 써도 오류문과 함께 적용이 잘 되긴 함

🔸 태그는 꼭 닫자

  • HTML에서는 종종 태그를 닫지 않아도 괜찮은 경우가 있음(ex. input)
  • jsx에서는 안돼용 => 안닫으면 오류남!!
profile
🥳믓진 개발자가 되겠어요🥳

0개의 댓글