Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 일상
- underscores
- 자바스크립트
- JS
- react
- 알고리즘
- 해커톤
- array
- 취업
- DOM
- 공부
- this
- 클라이언트
- ftech
- 개발
- 포스기
- method
- 엔퀸즈
- underbar
- nqueens
- 초보
- 리액트
- JavaScript
- 코드스테이츠
- 제일어려워
- Instantiation Patterns
- grpahQL
- vscode
- 코딩
- 연습
Archives
- Today
- Total
analogcoding
React Hook life cycle 본문
ComponentDidMount
컴포넌트가 만들어지고 render가 호출된 이후에 호출되는 메소드. ( example : fetch or TImer )
// Class
class Example extends React.Component {
componentDidMount() {
...
}
}
// Hook
const Example = () => {
useEffect(() => {
...
}, []);
}
ComponentWillUnmount
React 엘리먼트를 실제 DOM 노드에 추가하기 직전에 호출되는 메소드.
DOM이 생성되지 않았으므로 DOM을 조작할 수 없고, render가 호출되기 전이기 때문에 setState를 사용해도 render가 호출하지 않음.
// Class
class Example extends React.Component {
componentWillUnmount() {
...
}
}
// Hook
const Example = () => {
useEffect(() => {
return () => {
...
};
}, []);
}
Hook 에서는 useEffect 에서 함수를 리턴하는 형태로 구현
componentWillReceiveProps(nextProps
컴포넌트 생성후에 첫 렌더링을 마친 후 호출되는 메서드. (컴포넌트가 처음 마운트 되는 시점에서는 호출되지 않음.)
이 메소드 내부에서 setState를 사용해도 추가적인 렌더링이 발생하지 않음.
(example : props를 받아서 state를 변경해야 하는 경우 )
// Class
class Example extends React.Component {
componentWillReceiveProps(nextProps) {
...
}
or
UNSAFE_componentWillReceiveProps(nextProps) {
...
}
}
// Hook
const Example = (props) => {
const { value } = props;
useEffect(() => {
...
}, [value]);
}
ShouldComponentUpdate
shouldComponentUpdate가 불린 이후에 컴포넌트 업데이트 직전에서 호출되는 메소드.
새로운 props 또는 state가 반영되기 직전 새로운 값들을 받음.
이 메서드 안에서 this.setState()를 사용하면 무한 루프가 일어나게 된다.
주의
class 컴포넌트의 shouldComponentUpdate() 메서드와 달리, areEqual 함수는 props들이 서로 같으면 true를 반환하고, props들이 서로 다르면 false를 반환한다. 이것은 shouldComponentUpdate와 정반대의 동작이다.
// Class
class Example extends React.Component {
shouldComponentUpdate(nextProps) {
return nextProps.value !== this.props.value;
}
}
// Hook
const Example = React.memo(() => {
...
}, (prevProps, nextProps) => {
return nextProps.value === prevProps.value;
})
'Be well coding > Learn more' 카테고리의 다른 글
StoryBook 사용 - 번역 (0) | 2020.04.28 |
---|---|
Github action 을 이용한 S3 배포 - 번역 (0) | 2020.04.22 |
axios interceptors / defaults (0) | 2020.04.20 |
React hooks 를 사용해야하는 이유 - 번역 (0) | 2020.02.18 |
styled-components 를 사용하는 8가지 이유 -번역 (0) | 2020.02.14 |
Comments