답변:
나는 Angular를 사용하지 않았지만 위의 링크를 읽으면 처리 할 필요가없는 것을 코딩하려고하는 것 같습니다. this.setState ()를 통해 React 컴포넌트 계층에서 상태를 변경하면 React는 컴포넌트를 다시 렌더링하게합니다 (변경 사항을 효과적으로 '듣기'). 계층의 다른 구성 요소에서 '듣기'하려면 두 가지 옵션이 있습니다.
상태가 변경되면 다음 수명주기 메소드 가 호출됩니다. 제공된 인수와 현재 상태를 사용하여 의미있는 내용이 변경되었는지 확인할 수 있습니다.
componentWillUpdate(object nextProps, object nextState)
componentDidUpdate(object prevProps, object prevState)
componentDidUpdate
했으며 소품으로 구성 요소를 추가 하는 것이 올바른 처방이었습니다. 고마워
componentWillUpdate
더 이상 사용되지 않습니다 : reactjs.org/blog/2018/03/27/update-on-async-rendering.html
componentDidUpdate
반드시, 바로 그 때 상태 변경을 새로운 소품을받는 경우도 발생하지?
componentWillUpdate
더 이상 사용되지 않습니다.
업데이트 할 때 구성 요소 업데이트를 트리거 해야하는 입력 속성이있는 것처럼 구성 요소 수명주기 아래에서 사용해야한다고 생각합니다. 렌더링 전에 구성 요소 상태를 업데이트 할 수도 있습니다. 보기에 반영.
componentWillReceiveProps: function(nextProps) {
this.setState({
likesIncreasing: nextProps.likeCount > this.props.likeCount
});
}
useState 및 useEffect Hooks를 사용하여 2019 년 React 16.8부터 다음과 같은 기능을 수행합니다 (간단한 경우).
AngularJS :
$scope.name = 'misko'
$scope.$watch('name', getSearchResults)
<input ng-model="name" />
반응 :
const [name, setName] = useState('misko')
useEffect(getSearchResults, [name])
<input value={name} onChange={e => setName(e.target.value)} />
오랜 시간이 지났지 만 나중에 참조하기 위해 shouldComponentUpdate () 메소드를 사용할 수 있습니다.
소품 또는 상태 변경으로 인해 업데이트가 발생할 수 있습니다. 이러한 메소드는 구성 요소를 다시 렌더링 할 때 다음 순서로 호출됩니다.
static getDerivedStateFromProps()
shouldComponentUpdate()
render()
getSnapshotBeforeUpdate()
componentDidUpdate()
shouldComponentUpdate
사용 사례에 적합하지 않을 수 있습니다.