Thief of Wealth

컴퓨터 공학에서의 side effect란
함수의 로컬 상태를 함수 외부에서 변경하는 경우, side effect가 발생했다고 한다.

이 개념을 react에 적용하면, function component 외부에서 로컬 상태의 값이 변경되는 것이 side effect라고 할 수 있다.

흔한 경우로 비동기 처리가 있을 것이다.

즉, react에서 side effect란, 리액트 컴포넌트가 화면에 렌더링 된 이후에 비동기적으로 처리되어야하는 부수적인 효과들을 side effect라고 일컫는다.

그럼 모든 비동기 로직은 useEffect에 들어가야하는가?

아마 그럴 수도 있을 것 같다. (내 생각)

만약, 어떤 버튼이 눌렸을때 어떤 비동기 로직이 트리거되어야한다면, 로컬상태로는 해당 버튼이 눌렸는지에 대한 상태를 가지고있고, 상태가 변경되면 비동기로직을 useEffect내에서 수행하는 방식으로 하는것도 있을 것 같다.

하지만 이렇게 되면 useEffect로직이 많아지는데. 그러면 라이프 사이클이 꼬일위험도 높은것 같다.

무조건 비동기로직을 useEffect에 넣는다기보단, 어떤 특정 상태가 변경되었을때 비동기 로직을 수행하고 싶을때 useEffect를 사용한다는게 맞는 것 같다.

위 예시처럼 어떤 버튼이 눌렸을때 비동기로직이 동작해야하는 경우는 매 렌더링마다 비동기 로직이 실행되는 것이 아니고, 특정 조건에 트리거 되는 것이기 때문에 useEffect에 선언할 필요가 없다.

https://www.daleseo.com/react-hooks-use-effect/

https://nsinc.tistory.com/223

profile on loading

Loading...