깊은 객체, 배열에 의한 리렌더링

박경준·2022년 4월 26일
0

depth가 깊은 객체나 배열에서 내부 값이 바뀌었을때 리렌더링 되지 않아 다음 리렌더링을 시켜야 비로소 이전 변경이 반영되는 경우가 있다.
이 문제는 nextTick으로 해결할 수 없다..!

import _ from "lodash";

...

const clone = _.cloneDeep(this.guarantyOptions);
this.guarantyOptions = clone;
  • 코드는 매우 간단하다. 변경이 감지되기를 바라는 data 값을 깊은복사해준 뒤 다시 그 clone 값을 기존 data에 재할당한다.
    이러면 주소값이 변경되면서 리렌더링이 된다. data의 주소값이 바뀌면 리렌더링 된다는 규칙을 알 수 있음.
profile
빠굥

0개의 댓글