JSX의 특징
이전 포스팅에서 JSX
에 대해 잠깐 다뤄보았지만, 본격적으로 자세하게 알아보자.
모든 리액트 컴포넌트는 render
메소드가 있는데 이것은 컴포넌트가 어떻게 생길지 정의해준다. 여기서 특별한 점 하나는 JSX
다. 이것은 자바스크립트 코드에서 html
형식을 그대로 사용할 수 있게 해준다. 그리고 React JSX
는 XML
같은 문법을 Native JavaScript
로 변환해준다.
render
메소드 안에서 어떤 뷰를 보여줄 지 JSX
형태로 리턴하면 된다.
그렇다면 이제 JSX
의 특징에 대해서 자세히 알아보자.
특징1. Nested Element
모든 JSX
형태의 코드는 container element
안에 포함시켜줘야 한다. 아래의 예시를 보자.
Example
1 | //에러 |
특징2. JavaScript Expression
JSX
안에서 javascript
를 표현할 때는 그냥 { }
로 wrapping
하면 된다. 아래의 예시를 보자.
Example
1 | import React from 'react'; |
Example 실행결과
- (줄 11) :
{ local }
부분에 7번 줄에서 정의했던local
지역 변수 값이 출력된다. - (줄 12) :
new Date().toString()
표현식의 값, 즉 현재 시각이 출력된다. - (줄 13) : 멤버 변수를 출력할 때는 반드시
this
를 붙여주어야 한다.{ this.member }
부분에 4번 줄에서 정의했던member
멤버 변수 값이 출력된다.
특징3. Inline Style
JSX
안에서 style
을 설정할 때는 string
형식을 사용하지 않고 key
가 camelCase
인 객체가 사용된다. (ex. background-color (x), backgroundColor (o)) 아래의 예제를 보자.
Example
1 | render() { |
특징4. comments
jsx
안에서 주석을 작성할 때는 {/* ...*/}
형식으로 작성해야 한다. 주의할 점은 이 역시 container element
안에 주석이 작성되어야 한다는 것이다. 아래의 예시를 보자.
1 | render() { |