리액트 #03 - JSX

2017. 3. 31. 16:51·개발/ReactJS

React JS #03 - JSX 



리액트는 일반적인 Javascript 와는 다르게 JSX라는 템플릿을 사용한다.


꼭 필요한 건 아니지만, 많은 장점이 있다.




- JSX는 Javascript 코드로 컴파일하는 과정에서 최적화된다.


- JSX는 예측불가능한 결과를 내지 않는다. 대부분의 에러들은 컴파일과정에서 발견된다.


- HTML에 친근하여 개발이 쉽고 빠르다.






JSX 사용하기



JSX는 일반적인 HTML과 많이 닮았습니다. 




class App extends React.Component {
    render(){


        return (
            <div>
                <h1>Hello World!!!</h1>
            </div>
        );
    }
}



HTML과 비슷하지만, JSX를 쓰기위해선 많은 것들을 염두해두고 있어야합니다.






Nested Elements



많은 것들을 반환하고자 한다면, 하나의 컨테이너에 담아야 합니다.


아래에는 h1, h2, p 태그를 div라는 컨테이너에 담아서 반환합니다.




import React from 'react';


class App extends React.Component {
   render() {
      return (
         <div>
            <h1>Header</h1>
            <h2>Content</h2>
            <p>This is the content!!!</p>
         </div>
      );
   }
}


export default App;




- 실행 결과





Attributes



일반적인 html property에 사용하듯이 커스텀 attributes를 사용할 수 있습니다.


커스텀 속성을 사용하기 위해선, data- 라는 접두사를 사용해야 합니다.




import React from 'react';


class App extends React.Component {
   render() {
      return (
         <div>
            <h1>Header</h1>
            <h2>Content</h2>
            <p data-myattribute = "somevalue">This is the content!!!</p>
         </div>
      );
   }
}


export default App;




- 실행 결과




Javascript Expressions



JSX에서는 Javascript expressions을 사용할 수 있습니다.


{}로 감싸주기만 하면 됩니다.



import React from 'react';


class App extends React.Component {
   render() {
      return (
         <div>
            <h1>{1+1}</h1>
         </div>
      );
   }
}


export default App;




- 실행 화면




그런데 JSX에서는 흔히 JS에서 많이 쓰는 if else 구문을 쓸 수 없습니다.


대신 ternary expressions을 사용해야 합니다.




import React from 'react';


class App extends React.Component {
   render() {


      var i = 1;


      return (
         <div>
            <h1>{i == 1 ? 'True!' : 'False'}</h1>
         </div>
      );
   }
}


export default App;




- 실행 화면





Styling



리액트는 inline style을 쓰기를 지향합니다.


inline style을 쓰기위해선 camelCase 문법으로 사용해야 합니다.




import React from 'react';


class App extends React.Component {
   render() {


      var myStyle = {
         fontSize: 100,
         color: '#FF0000'
      }


      return (
         <div>
            <h1 style = {myStyle}>Header</h1>
         </div>
      );
   }
}


export default App;




- 실행 화면






'개발 > ReactJS' 카테고리의 다른 글

리액트 #06 - Component API  (1) 2017.04.03
리액트 #05 - State & Props  (0) 2017.04.01
리액트 #04 - Components  (0) 2017.03.31
리액트 #02 - 개발환경 구축  (0) 2017.03.30
리액트 #01 - Overview  (0) 2017.03.30
'개발/ReactJS' 카테고리의 다른 글
  • 리액트 #05 - State & Props
  • 리액트 #04 - Components
  • 리액트 #02 - 개발환경 구축
  • 리액트 #01 - Overview
pfldy2850
pfldy2850
인공지능의 서비스화와 현실화에 관심이 많은 엔지니어입니다.
  • pfldy2850
    DEV.DY
    Github LinkedIn
  • 전체
    오늘
    어제
    • All (105)
      • AI (68)
        • 어플리케이션 개발 (11)
        • 모델 인퍼런스 (9)
        • 검색 시스템 (11)
        • MLOps (8)
        • 기술,논문 리뷰 (7)
        • Lecture notes (10)
        • 오픈소스 릴리즈 노트 (12)
      • Infra (4)
        • Kubernetes (1)
        • Service Mesh (1)
        • Service Proxy (1)
        • Storage (1)
      • Data Engineering (4)
        • Spark (3)
        • Kafka (1)
        • Delta Lake (0)
      • 컴퓨터 공학 (2)
        • 소프트웨어 공학 (2)
      • 개발 (16)
        • ReactJS (8)
        • NodeJS (2)
        • Python (4)
        • Pytorch (1)
        • git (1)
      • 영어공부 (2)
        • GPT로 영어 회화 공부 (2)
      • 활동 (2)
        • 2017 NDC (2)
      • 기타 (1)
      • 레거시 (6)
        • OS (6)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
pfldy2850
리액트 #03 - JSX
상단으로

티스토리툴바