본문 바로가기

Programming/React ; Redux

JSX란?

정의 

  • 자바스크립트를 확장한 문법으로 React Element를 생성한다. 
  • React.createElement(component, props, ...children)에 대한 Sugar Syntax이다.
// 컴파일 전
<MyButton color="blue" shadowSize={2}>
  Click Me
</MyButton>

// 컴파일 후 
React.createElement(<MyButton>, {color:"blue", shadowSize:2}, "Click Me");

브라우저는 JSX를 해석할 수없으므로, Babel를 사용해서 모든 JSX를 순수 React로 변환해야 한다. 아래 글을 참고하자.

2021.05.21 - [Programming/Frontend] - Babel 정리 (Polyfill 포함)

 

 

특징 

  • 배열을 매핑하기
    // map을 사용해서 여러개의 JSX 컴포넌트를 합성할 수 있다. 
    <ul> 
    { menus.map((item, index) => 
      <li key={item.id}>{item.name}</li> ) 
    } 
    </ul>
  • 컴포넌트 타입은 동적으로 매핑할 수 있지만, 실행 중에는 설정할 수 없다.
    const components = {
        photo: PhotoStory, 
        video: VideoStory 
    }
    
    function Story(props) {
        // Error : 실행 중에는 타입을 결정할 수 없다.
        return <components[props.photo] story={props.story}/>
    }
    
    // 미리 변수에 할당해서 매핑해야 한다.
    function Story(props) {
        const SpecificStory = components[props.photo];
        return <SpecificStory story={props.story}/>
    }
  • 자바스크립트 식, 또는 표현식 : 중괄호 {}로 감싼 코드를 의미한다. 중괄호 안의 식을 평가해서 결괏값을 돌려준다. 즉, 덧셈, 뺄셈이나 함수 호출과 같은 연산이 일어날 수 있다는 의미이다.
    // 값을 출력하는 용도 
    <h1>{this.props.myName}</h1>
    
    // 컴포넌트에 props를 전달하는 용도
    <MyColor border={red} opacity={0.5} visible={false} />
    
     

 

'Programming > React ; Redux' 카테고리의 다른 글

Context란?  (0) 2021.05.22
React로 사고하기  (0) 2021.05.22
State 특성 3가지  (0) 2021.05.21
React/Redux - 실수 모음집 (누적 중)  (0) 2021.05.15
React.memo 사용 예제  (0) 2021.05.10