2017-11-28 4 views
1

반응을 사용할 때이 두 라이프 사이클이 너무 유사하다는 것을 알았습니다. componentWillReceiveProps가 nextProps를 인수로 받아야합니다. shouldComponentUpdate가 nextProps 및 nextState를 인수로 받으면 shouldComponentUpdate가 동일한 작업을 수행 할 수 있다고 생각합니다. 왜 더 이상 componentWillReceiveProps 메서드를 사용해야합니까? 입니다 - 새로운 소품이 구성 요소에 전달됩니다 당신이왜 계속 componentWillReceiveProps 및 shouldComponentUpdate 메서드를 모두 유지 하시겠습니까?

가 shouldComponentUpdate 새로운 소품 상태에 따라 작업을 트리거 할 때마다이 호출되는 함수 이름 상태와 같은 -이 두 가지 방법

+1

당신은 아마 설명서를 읽어야합니다. 이 두 라이프 사이클 기능은 동일한 소품을 받지만 다른 기능을 제공하고 다른 트리거를 사용합니다. –

+0

'shouldComponentUpdate'는 업데이트를 수락하거나 거절하기 위해 사용됩니다. 소품이 변경되면 구성 요소를 다시 렌더링하지 않으므로 false를 반환합니다. componentWillReceiveProps는 현재 갖고있는 소품과 다음 소품이 무엇인지 확인할 수있는 방법입니다. 'componentWillReceiveProps (nextProps) {}'. – Dan

+3

이 질문에 대한 답변은 답변 문서 –

답변

0

componentWillReceiveProps의 차이가 무엇 궁금 컴포넌트 트리가 다시 렌더링되어야 하는지를 결정하는 필터 함수. 이 기능은 렌더링 다시 당신이 필요하지 않는 일어나고있는 변화의 추가 필터 역할을 할 수

더 많은 정보 here

2

그들은 두 개의 서로 다른 역할을하고 다른 상황에서 실행 :

shouldComponentUpdate 것 국가의 소품이나 무언가가 변경 될 때마다 호출됩니다 (또는 React는 변경된 것으로 생각합니다). 함수는 구성 요소를 다시 렌더링해야하는 경우 (기본값 반환 값) true 또는 부울을 반환해야하는 경우 false을 반환하여 구성 요소를 다시 렌더링해야하는지 여부를 결정하는 것입니다. 현재 상태 및 다음 상태와 소품에 액세스하여 실제로 다시 렌더링해야하는지 여부를 비교하고 결정할 수 있습니다. 다른 이유로이 방법을 사용하면 안됩니다.

componentWillReceiveProps은 소품이 변경된 경우 (또는 변경된 것으로 보이는 경우)에만 호출됩니다. 상태 만 변경되면이 메서드는 호출되지 않습니다. 또한 구성 요소를 다시 렌더링해야하는지 여부도 결정하지 않습니다. 이 메소드를 사용하여 예를 들어 일부 상태를 변경하거나 API 호출을 할 수 있습니다.

체크 아웃이 링크 :

componentWillReceiveProps : https://developmentarc.gitbooks.io/react-indepth/content/life_cycle/update/component_will_receive_props.html

shouldComponentUpdate : https://developmentarc.gitbooks.io/react-indepth/content/life_cycle/update/using_should_component_update.html