programing

리액트 쓸까?Pure Component는 어디에나 있습니까?

linuxpc 2023. 3. 27. 21:05
반응형

리액트 쓸까?Pure Component는 어디에나 있습니까?

React는 순수 렌더링을 통해 성능을 최적화할 수 있다고 말합니다.React에는 Pure Component가 있습니다.리액트 쓸까?Pure Component는 어디에나 있습니까?또는 React를 사용할 때.PureComponent 및 는 React를 사용하는 가장 적절한 위치입니다.Pure Component?

항상은 아냐.소품이나 상태가 같더라도 컴포넌트가 재렌더될 수 있을 때 사용해야 합니다.예를 들어 부모 컴포넌트를 재렌더해야 하지만 자녀 컴포넌트 소품 및 상태는 변경되지 않은 경우를 들 수 있습니다.하위 구성 요소는 실제로 다시 렌더링할 필요가 없기 때문에 Pure Component의 이점을 얻을 수 있습니다.

꼭 모든 곳에서 사용할 필요는 없습니다.가 얄팍한 하는 것은 의미가 없습니다.shouldComponentUpdate()많은 경우, 이 툴은 다른 라이프 사이클 방법을 추가하지만, 아무런 이점도 얻을 수 없습니다.

루트 레벨의 컴포넌트를 갱신할 필요가 없지만, 루트 레벨의 컴포넌트를 갱신하는 경우가 많은 경우는, 렌더링 시간을 큰폭으로 단축할 수 있습니다.즉, 루트 레벨 노드에서 Pure Component를 사용하면 훨씬 더 많은 이점을 얻을 수 있습니다(즉, Pure Component는 해당 컴포넌트에서 렌더링만 저장하므로 리프 레벨 컴포넌트에서 전체적인 성능을 크게 향상시키지는 않습니다).

Pure Component에 대한 몇 가지 경고는 반응 문서에서 매우 잘 설명되어 있습니다.

React.PureComponent의 should ComponentUpdate()는 오브젝트를 얕게 비교합니다.

프로펠러 변경 내용이 중첩된 개체 깊숙이 있는 경우 렌더링 업데이트를 실수로 놓칠 수 있습니다.Pure Component는 단순한 플랫 오브젝트/프롭 또는 불변과 같은 것을 사용하는 경우에만 우수합니다.JS: 단순 비교를 통해 개체 내의 변화를 감지합니다.

게다가 리액트.Pure Component의 should Component Update()는 컴포넌트 서브트리 전체의 프로펠러 업데이트를 건너뜁니다.모든 하위 구성 요소도 "순수"인지 확인하십시오.

Pure Component는 컴포넌트의 렌더링이 소품 및 상태에만 의존할 때만 작동합니다.이는 항상 반응의 경우여야 하지만 일반 반응 라이프사이클 밖에서 다시 렌더링해야 하는 예가 있습니다.Pure Component가 예상대로 작동하려면(재렌더 작업을 실제로 수행할 필요가 없음), Pure Component의 모든 하위 항목이 '순수'여야 합니다(소품 및 상태에 따라 다름).

참조에 따르면 no(어디서나 사용해서는 안 됩니다)

(React에서 작업하고 있습니다.) [...] PureComponent를 어디에서나 사용하도록 권장했다면 이미 기본값이 되었을 것입니다.오히려 컴포넌트의 재렌더 여부를 결정하는 비교에는 비용이 많이 듭니다.재렌더 할 필요가 있는 경우는 재렌더 할 필요가 있는지 여부를 확인하는 데 소비된 모든 시간이 낭비됩니다.

그 대신 비교가 필요한 곳을 의식하는 것이 좋습니다.앱에는 보통 몇 군데만 있습니다.좋은 후보자는 긴 목록의 자녀 또는 독립적으로 변경되는 앱의 대부분에 있습니다(즉, 부모가 자주 다시 등록해야 하지만 자녀는 그렇지 않아야 한다는 것을 알고 있는 경우).적절한 위치에 있는 몇 가지 should Component Update(또는 Pure Component)를 사용하면 효과가 있습니다.

--

나는 Dan Abramov가 같은 말을 한 트윗을 발견했다(2016년 7월 30일).

언급URL : https://stackoverflow.com/questions/42756354/should-i-use-react-purecomponent-everywhere

반응형