Page 26 -
P. 26

7.2.8  componentWillUnmount 메서드


                 componentWillUnmount() { ... }

               이것은 컴포넌트를 DOM에서 제거할 때 실행합니다. componentDidMount에서 등록한 이벤트, 타
               이머, 직접 생성한 DOM이 있다면 여기서 제거 작업을 해야 합니다.





               7.2.9  componentDidCatch 메서드


               componentDidCatch 메서드는 리액트 v16에서 새롭게 도입되었으며, 컴포넌트 렌더링 도중에 에
               러가 발생했을 때 애플리케이션이 먹통이 되지 않고 오류 UI를 보여 줄 수 있게 해 줍니다. 사용
               방법은 다음과 같습니다.

                 componentDidCatch(error, info) {
                     this.setState({
                       error: true
                     });
                     console.log({ error, info });
                   }

               여기서 error는 파라미터에 어떤 에러가 발생했는지 알려 주며, info 파라미터는 어디에 있는 코
               드에서 오류가 발생했는지에 대한 정보를 줍니다. 앞의 코드에서는 그저 console.log만 했지만,

               나중에 실제로 사용할 때 오류가 발생하면 서버 API를 호출하여 따로 수집할 수도 있습니다.
               그러나 이 메서드를 사용할 때는 컴포넌트 자신에게 발생하는 에러를 잡아낼 수 없고 자신의

               this.props.children으로 전달되는 컴포넌트에서 발생하는 에러만 잡아낼 수 있다는 점을 알아
               두어야 합니다. 이 메서드를 사용하는 방법은 7.3.3절 ‘에러 잡아내기’에서 알아보겠습니다.



















         178





     리액트를 다루는 기술_개정판(본문)최종출력용.indb   178                                                    2019-08-20   오전 11:03:03
   21   22   23   24   25   26   27   28   29   30   31