2016-10-29 2 views
0

반응 라이프 사이클 방법 shouldComponentUpdate의 가장 관용적 인 구현을 이해하려고합니다. 나는 선택적인 것이기 때문에 나는 가능한 한이 방법을 사용하지 않는다고 생각한다.shouldComponentUpdate의 관용구 구현?

일반적으로 개체의 props 또는 state이 업데이트 사이에 변경되었는지 확인하고 싶습니다.

이 평등 객체 참조 가리키는대로이 작동하지 않습니다

shouldComponentUpdate(nextProps, nextState) { 
    return this.props !== nextProps; 
} 

그래서 우리는 못생긴 솔루션의 조금처럼 보인다 개체 복제의 토끼 구멍 아래로 이동합니다

return JSON.parse(JSON.stringify(this.props) !== JSON.parse(JSON.stringify(nextProps)); 

// lodash cloning method 
return _.cloneDeep(this.props) !== _.cloneDeep(nextProps); 

또 다른 가능성은 immutablejs과 같은 불변의 라이브러리를 사용하고 있지만 다른 종속성으로 인해 프로젝트에 추가하고 배우고 싶은 또 다른 API입니다.

이 나는 ​​뭔가를 놓치고 있습니까? 이것에 대한보다 간결한 접근법이 있습니까?

+2

가장 간결한 부분은 분명히 ImmutableJS입니다. 다른 모든 것은 간단하지 않을 것입니다. –

답변

1

간단히 React's shallow compare을 사용하여 소품과 주를 비교할 수 있습니다.

희망이 도움이됩니다.