ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ReactJS (4)
    웹개발/JavaScript 2021. 1. 4. 16:27

    * Class Components and State

    · state

    : 보통 우리가 동적 데이터와 함께 작업할 때 만들어짐

    변하는 데이터, 존재하지 않는 데이터 그리고 생겨나고 그러고선 사라지고 또는 변경된 데이터, 하나인 데이터 그리고 두 개가 되고 또는 0이 되는 그런 종류의 것들 -> dynamic data

    그리고 이런 props를 우리는 돕지않음 우리가 필요한 건 state

     

    · class Component

    class App extends React.Component{} //필수 (class react component)

    : react component는 뒤에 많은 것을 가지고 있고 그 중 하나가 우리가 이야기할 state

    그리고 매번 우리가 component를 만들 때마다 모든 것을 다 구현하고 싶지 않음 (extend from한 이유)

    class react component는 return을 가지고 있지 않음 (function이 아니기 때문)

    render mothod를 가지고 있고, App component 안에 있음 (react component에서 확장했기 때문에)

     

    · function component vs react component

    function component: function이고 뭔가를 return 하고 screen에 표시됨

    class component: class지만 react component로부터 확장되고 screen에 표시됨

    그걸 render method 안에 넣어야만 함

    react는 자동적으로 모든 class component의 render method를 실행하고자 함

     

    * All you need to know about State

    · state

    : state는 object이고 component의 data를 넣을 공간이 있고 이 데이터는 변함

    state는 object이므로 setState는 새로운 state를 받아야하고, 따라서 state({count:1})과 같이 작성해야함

     

      add = () => {

        this.setState({count: this.state.count+1});

      };

      minus = () => {

        this.setState({count: this.state.count-1});

     

    보다는 아래의 방법이 좋음

    //react에서 외부의 상태에 의존하지 않는 가장 좋은 방법

      add = () => {

        this.setState(current => ({count: current.count+1}));

      };

      minus = () => {

        this.setState(current => ({count: current.count-1}));

      };

     

    setState를 호출할 때 마다 react는 새로운 state와 함께 render function을 호출

     

    * Component Life Cycle

    · life cycle method

    : 기본적으로 react가 component를 생성하는 그리고 없애는 방법

     

    - mounting (태어나는 것)

    · constructor: JavaScript에서 class를 만들 때 호출되는 것

    · static getDerivedStateFromProps() (범위 x)

    · render()

    · componentDidMount(): component가 처음 render 됨을 알려줌

     

    - updating (일반적인 업데이트)

    · static getDerivedStateFromProps() (범위 x)

    · shouldComponentUpdate() (범위 x): 기본적으로 업데이트를 할지 말지를 결정하는 것에 대한 것

    · render()

    · getSnapshotBeforeUpdate() (범위x)

    · componentDidUpdate()

     

    - unmounting (component가 죽는 것)

    · componentWillUnmount()

     

    import React from 'react';

     

    class App extends React.Component{

      state={

        count: 0

      };

      add = () => {

        this.setState(current => ({count: current.count+1}));

      };

      minus = () => {

        this.setState(current => ({count: current.count-1}));

      };

    componentDidMount(){

      console.log("component rendered");

    }

    componentDidUpdate(){

      console.log("I just updated");

    }

     

      render(){

        console.log("I'm rendering");

        return <div>

          <h1>The number is: {this.state.count}</h1>

          <button onClick={this.add}>Add</button>

          <button onClick={this.minus}>Minus</button>

          </div>;

      }

    }

     

    export default App;

     

    * Planning the Movie Component

    import React from 'react';

     

    class App extends React.Component{

      state={

        isLoading: true,

        movies: []

      };

      componentDidMount(){

        setTimeout(()=>{

        this.setState({isLoading: false});

      }, 6000);

    }

      render(){

        const {isLoading} = this.state;

        return <div>{isLoading ? "Loading..." : "We are ready"}</div>;

      }

    }

     

    export default App;

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

    ReactJS로 영화 웹 서비스 만들기  (0) 2021.01.04
    ReactJS (5)  (0) 2021.01.04
    ReactJS (3)  (0) 2021.01.03
    ReactJS (2)  (0) 2020.12.31
    ReactJS (1)  (0) 2020.12.31

    댓글

Designed by Tistory.