얻기 시리즈 라이프 사이클 후크 기능을 반응

### 수명주기 기능은 무엇입니까

어떤 단계에서 1 기능 컴포넌트는 자동으로 수행 될 것이다.
- 소품이나 상태 변경, 자동 기능을 렌더링 할 때 예를 들어, 우리가 수행 할 수있는 렌더링 기능을 사용합니다.
- 따라서 기능은 수명주기의 함수이다 렌더링합니다.
구성 요소가 생성 될 때 2. 생성자가 자동으로 호출됩니다. 그러나 그는 반응 할 고유하지 않습니다, 그래서 우리는 생명주기 기능으로 그를 나열되지 않은 ES6의 함수이다.

### 라이프 사이클은 네 단계로 나누어 져 있습니다

1. 초기화 (구성 요소 초기화)
- 우리는 왜 기능의 구성 요소를 설명하는 A는, 라이프 사이클 및 다른 방법을 사용할 수 있습니다) (렌더링하려면이 기본 클래스를 상속 순서대로 반응 할 구성 요소의 기본 클래스 반응이 구성 요소의 생성에 상속 할 필요가 이 방법을 사용할 수 없습니다 이유. 구성 요소는 사용 setState를 방법을 만들 수 있습니다.
- 우리는 분사 조립체 소품에 전달되는 부모 컴포넌트 생성자 생성자에서 super (소품)을 사용하여 구성 요소를 초기화 this.state이 특성을 이용.
- 작업이 시리즈는 구성 요소를 초기화하는 것입니다.
2. 마운트 (실장 부품)
-이 단계는 세 개의 기간으로 분할되어
1 componentWillMount은 (설치 전)
- 여기서 인용하므로,이 함수는 DOM 전의 시각에 장착 된 구성 요소를 수행 setState를 방법은 아니다 다시 렌더링 컴포넌트를하게한다.
- 사용하는 배치 생성자 생성자도 가능하면 여기에 같은 일을한다.
- 구성 요소가 DOM 전에 시간에 장착되면이 기능은 호출됩니다. 다른 시간은이 기능을 트리거하지 않습니다.

2. 렌더링 (에 장착)
- 변화에 따른 조립체, 즉 변경을 수행할지 여부 소품 상태의 변화에 주목하여야한다 값은 변경되지 않는다. 으로, 재 할당 한 이전 및 새 값이 같은 실행됩니다.
- (가) 페이지 DOM 렌더링하는 요소에 따라 자체 반응 후 다음 반작용 소자 (기재 성분, 즉, UI)를 반환 성분은 실제 렌더링 작업에 대한 책임이 아니다. 함수의 실행은 부작용이없는, 결과 만의 파라미터에 따라 반환하는 함수 : 순수 함수 (순수한 렌더링 기능
부품면의 상태를 변경한다 this.setState 수행 될 수 없다 -.

3. componentDidMount (장착 완료)
- 라이프 사이클에서 아약스 기능이 요청에 동의는
-는 DOM에 장착 된 구성 요소는 한 번만 실행되고있다.
3. 갱신 (때 구성 요소 업데이트)
- 먼저 우리가 어떤 구성 요소 업데이트를 살펴 보자. 만 물리게에서 구성 요소 업데이트를 불러 소품 setState를 함수 또는 재 할당하는 경우로 변경합니다.
- setState를 기능이 구현의 부모 구성 요소의 원인 렌더링뿐만 아니라, 구현의 하위 구성 요소의 렌더링 기능을 발생합니다.
- 그 이유는 가상 DOM을가 사랑하는 알고리즘, 피어 비교 원리를 반응이다.
- 한 재 할당은 값이 변경되지 않은 경우, 업데이트 된 구성 요소를, 그리고 성능을 소비하는 것뿐만 아니라, 우리가 단점 말에 비해 같은 수준에 대해 이야기 할 때 업데이트 구성 요소 때문이다.

- 다음으로 그주기 함수를 보면
1 componentWillReceiveProps (nextProps가)
-이 방법에만 업데이트 프로세스 소품에 의해 야기 된 컴포넌트에서의 호출 상위 요소로 전달되는 파라미터는 새로운 소품 nextProps 전류 성분이다. 그러나 부모 구성 요소를 호출하는 소품의 재전송의 변경 여부를 확인하기 위해이 방법 있도록 방법은, 현재의 소품 구성 요소에 변화를 재전송 보장하지 않습니다 렌더링, 당신은 당신이 nextProps 및 this.props에 따라 수행 할 것을 변경하는 경우, 예를 들면, 현재 전화를 다시 렌더링하는 this.setState 새로운 소품에 따라 조립을 시작

ShouldComponentUpdate 2. (nextProps, NextState)
- 현재 구성 요소 업데이트가 가능한 것으로 중단 될 경우 nextProps을 비교하여이 방법은, 현재의 구성 요소가 업데이트 프로세스를 계속 수행 할 경우에 true를 반환 nextState 현재 구성 요소, this.state을 this.props는 false를 반환 구성 요소의 성능을 최적화하기 위해 불필요한 렌더링 구성 요소를 줄일 수 있습니다. 추신 : 여기에 this.setState의 구현에 componentWillReceiveProps이 () 상태를 업데이트하지만 (예 : shouldComponentUpdate, componentWillUpdate로) 렌더링하기 전에, this.state 여전히 업데이트 이전 상태, 그렇지 않으면 nextState 현재 구성 요소를 가리 경우에도 볼 수있다 대조적으로 this.state는 진정한했을 것이다.

ComponentWillUpdate 3. (nextProps, NextState)
- 구성 요소 업데이트가 발생하기 전에, 일반적으로 덜 사용하는 일부 작업을 수행 할 수 있습니다 여기에 수행 된 렌더링 메소드를 호출하기 전에이 방법.

4. 렌더링
- 언급 한 위의 렌더링 방법, 여기 회상합니다.

ComponentDidUpdate 5. (prevProps, PrevState)
-이 방법은 구성 요소 업데이트 후 호출, 업데이트 된 구성 요소는이 두 가지 매개 변수 DOM, prevProps PrevState을 운영하고 주를 업데이트하기 전에 어셈블리를 참조하고 소품 수 있습니다
- 최적화 단점
- 1. 때 때문에 부모 구성 요소가 렌더링과 함께 서브 어셈블리로 이어지는 소품 재 할당하게 재 렌더링한다.

/ ** 
* 방법 A : 상기 문제점을 해결하기 위해, 기능 shouldComponentUpdate 전에 수행 될 수 있고, 컴포넌트 업데이트 변경 소품 여부를 결정하고 재 렌더링을 수행할지 여부를 결정한다. 
* / 
클래스 (가) 구성 요소 아동 {확장 
shouldComponentUpdate (nextProps를) { 
(nextProps.value === this.props.value) {경우 
false로 반환 
} 
true로 반환 
} 
)을 (렌더링이 { 
반환 <DIV> this.props.value {} </ div> 
} 
} 
/ ** 
*있어서 두 : 
* (1) 상기 문제점을 해결하기 위해서는 상기 제 1 서브 어셈블리에 할당 될 수있다 this.props.value 상태 
setState를 행 * 2. 아직 componentWillReceiveProps 함수, Stae가 재사용 속성 할당 this.props.value 
* 3. 한 문서는 제 2 렌더링을 야기되지 this.setState의 함수 (componentWillReceiveProps)에 ()를 호출. 
* 4. componentWillReceiveProps 만 소품의 변화가, 그래서 this.setState이 () 상태의 변화가 있어야 할 때 트리거되어 있기 때문에 
* / 
//
{자식 구성 요소는 확장 클래스 
생성자 (버팀대) { 
; 슈퍼 (버팀대) 
this.state = { 
조립체 할당 // props.value this.props.value 1 상태 : 값 
} 
} 
// {componentWillReceiveProps (nextProps) 이 방법은 트리거 소품의 변화가있을 때 
this.setState는 ({값 : nextProps.value}) ; // 할당 재 상기 렌더링 일으키는 
} 
{) (렌더링 
<div> this.state.value {반환} </ DIV > 
} 
}

- 2 성분 자체와 setState 메소드 호출, 값이 상태가 변경되지 않았.

/ ** 
* 렌더링하기 전에 shouldComponentUpdate 변경하여 이전 값과 새로운 값을 변경할지 여부를 판단한다 
* / 
클래스 상기 확장 테스트 컴포넌트 { 
생성자 (버팀대) { 
슈퍼 (버팀대) 
this.state = { 
값 :. 1 
} 
} 
shouldComponentUpdate (NextState) {/ / 이전 및 새 값을 변경할지 여부를 결정하는이 방법을 사용한다 
(nextState.value === this.state.value)에 묻 으면 { 
false로 반환 // false로 변화 반환 
} 
true로 반환 
} 

ChangeState = () =>를 {// setState를하면서 전화 하지만, 상태의 변화 
CONST 값 = this.state.value 
this.setState는 ({ 
}) 
} 

렌더링하지 () { 
리턴 <div this.changeState의 onclick = {}>} {this.state.value </ div> 
} 
}

  

4. 하역 단계 (componentWillUnmount)
- 단 수명주기 접근 componentWillUnmount은
-이 방법은 구성 요소가 제거되기 전에, 당신은 등 명확한 타이머 명확한 DOM 요소에 사용되는 구성 요소를 수동으로 생성 componentDidMount로, 여기에 몇 가지 정리 작업을 수행 할 수 호출 메모리 누수를 방지하기 위해서이다.

구성 요소의 상속이 구성 요소에 반응하기 때문에 5. 렌더링 기능, 다른 라이프 사이클 기능을 쓸 수 없습니다에 추가 구성 요소를 반응, 구성 요소 내장 함수 다른 라이프 사이클

추천

출처www.cnblogs.com/boye-1990/p/11453735.html