리액트 #06 - Component API

2017. 4. 3. 13:06·개발/ReactJS

이번에는 Component API 중


setState(), forceUpdate(), 그리고 ReactDOM.findDOMNode()라는 메소드에 대해서 알아보자.




setState



setState는 state를 변경할 때 사용합니다.


기존의 state를 대체하는 것이 아닌, 기존의 state에 변화를 줍니다.



App.js



import React from 'react';


class App extends React.Component {
   constructor() {
      super();
    
      this.state = {
         data: []
      }
  
      this.setStateHandler = this.setStateHandler.bind(this);
   };


   setStateHandler() {
      var item = "setState..."
      var myArray = this.state.data;
      myArray.push(item)
      this.setState({data: myArray})
   };


   render() {
      return (
         <div>
            <button onClick = {this.setStateHandler}>SET STATE</button>
            <h4>State Array: {this.state.data}</h4>
         </div>
      );
   }
}


export default App;




- 실행 화면 (버튼 누르기 전)



- 실행 화면 (버튼 누른 후)





forceUpdate



forceUpdate는 갱신하고 싶을 때 사용합니다.



App.js 



import React from 'react';


class App extends React.Component {
   constructor() {
      super();
      this.forceUpdateHandler = this.forceUpdateHandler.bind(this);
   };


   forceUpdateHandler() {
      this.forceUpdate();
   };


   render() {
      return (
         <div>
            <button onClick = {this.forceUpdateHandler}>FORCE UPDATE</button>
            <h4>Random number: {Math.random()}</h4>
         </div>
      );
   }
}


export default App;




- 실행 화면 (버튼 누르기 전)



- 실행 화면 (버튼 누른 후)





findDOMNode



findDOMNode 는 그냥 자바스크립트 DOM을 사용할 수 있다고 생각하면 됩니다.



App.js



import React from 'react';
import ReactDOM from 'react-dom';


class App extends React.Component {
   constructor() {
      super();
      this.findDomNodeHandler = this.findDomNodeHandler.bind(this);
   };


   findDomNodeHandler() {
      var myDiv = document.getElementById('myDiv');
      ReactDOM.findDOMNode(myDiv).style.color = 'green';
   }
  
   render() {
      return (
         <div>
            <button onClick = {this.findDomNodeHandler}>FIND DOME NODE</button>
            <div id = "myDiv">NODE</div>
         </div>
      );
   }
}


export default App;




- 실행 화면 (버튼 누르기 전)



- 실행 화면 (버튼 누른 후)



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

리액트 #08 - Forms  (1) 2017.04.05
리액트 #07 - Component Life Cycle  (1) 2017.04.04
리액트 #05 - State & Props  (0) 2017.04.01
리액트 #04 - Components  (0) 2017.03.31
리액트 #03 - JSX  (0) 2017.03.31
'개발/ReactJS' 카테고리의 다른 글
  • 리액트 #08 - Forms
  • 리액트 #07 - Component Life Cycle
  • 리액트 #05 - State & Props
  • 리액트 #04 - Components
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
리액트 #06 - Component API
상단으로

티스토리툴바