-
[react] props 를 initialState 로 사용 하면 안되는 이유react 2022. 5. 19. 11:04반응형
state 값은 getinitialState() 함수가 마운트시에 동작하면서 생성이 되고 이후에 state 값은 this.setState 에 의해 변형 되는 식이다.
즉 컴포넌트 마운트시에만 getinitialState() 함수가 동작하기 때문에 prop 값을 initialState 값에 넣어둬도 리렌더 시에는 해당 변경이 반영이 되지 않는다 마운트 이후에 리렌더과정에서 state 값을 변경하고 싶은경우 setState 를 이용해야 한다.
리렌더가 되는경우들을 살펴보면 그이유를 짐작할수 있는데 리렌더가 되는경우는
1.부모컴포넌트 리렌더
2.전달받은 props 변경
3.state 변경
그중 3번의 경우에서 만약에 추가로 getinitialState() 가 동작하는 과정이 끼어 있다고 생각해보자 얼마나 비효율 적인가 그래서 마운트시에만 getinitialState() 함수가 실햄됨
그니까 결론은 props 값 그대로 initial State 에 쓰지말고 상태끌어올리기나 키값을 변경시키는 방식을 이용해서 쓰자
키값변경해서 쓰는건 근데좀 코드가독성 떨어져 보여서 특이한 케이스 아니면 안쓰는게 좋을듯
'react' 카테고리의 다른 글
[react] 리액트 되돌아보기 (0) 2022.10.17 모바일에서 인풋창 선택시 확대되는 문제 nextjs (0) 2022.08.08 [react] render 함수 와 가상돔에 대하여 (0) 2022.03.07 [react] scroll handling (0) 2022.02.11 [react] focus 에 대하여(동적,정적포커스,커서위치조정) (0) 2022.01.12