Component 와 Pure Component 의 차이;demo 를 복사 하여 육안 으로 구별 할 수 있 습 니 다.

5631 단어
React.PureComponent 현재 props 와 state 의 얕 은 비교 로 덮어 썼 습 니 다.  shouldComponentUpdate()  실현쉽게 말 하면 PureComponent 가 shouldComponent Update () 의 기능 을 간단하게 실현 한 것 입 니 다. 물론 데이터 구조 가 복잡 하면 안 됩 니 다.
일단 첫 번 째 코드 를 볼 게 요.
 1 import React from 'react'
 2 
 3 class Child extends React.Component {
 4 
 5   render() {
 6     console.log('child render')
 7     return 
child
; 8 } 9 } 10 11 class App extends React.Component { 12 state = { 13 a: 1, 14 }; 15 16 render() { 17 console.log('render'); 18 return ( 19 <> 20 <button 21 onClick={() => { 22 this.setState({ a: 2 }); 23 }} 24 > 25 Click me 26 27 28 > 29 ); 30 } 31 } 32 33 export default App

부모 구성 요소 의 상 태 를 업데이트 하려 면 단 추 를 누 르 면 하위 구성 요소 도 다시 render 됩 니 다. 이 럴 때 출력 하 는 것 은:
parent renderchild render
구성 요소 render 를 최적화 하고 싶 을 때 shouldComponent Update () 를 사용 합 니 다.그럼 저 는 지금 위의 Child 구성 요 소 를 다음 과 같이 바 꿉 니 다.
 1 class Child extends React.Component {
 2 
 3   shouldComponentUpdate(nextProps, nextState) {
 4     if (this.props.color !== nextProps.color) {
 5       return true
 6     }
 7   }
 8 
 9   render() {
10     console.log('child render')
11     return 
child
; 12 } 13 }

이때, 우리 가 단 추 를 누 르 면 부모 구성 요소 의 상 태 를 업데이트 할 때, 하위 구성 요 소 는 render 가 되 지 않 습 니 다. 입력 한 것 은:
parent render
 
마지막 으로, 우 리 는 child 구성 요 소 를 다음 과 같이 바 꾸 고 있 습 니 다.
1 class Child extends React.PureComponent {
2   render() {
3     console.log('child render')
4     return 
child
; 5 } 6 }

위 그림 의 Child 구성 요소 와 같은 효 과 를 발견 할 수 있 습 니 다. 같은 출력 만 할 수 있 습 니 다.
parent render

좋은 웹페이지 즐겨찾기