-
[JS]Shallow CompareDev/JS 2018. 7. 3. 10:23
Shallow Compare
import
import shallowCompare from 'react-addons-shallow-compare'; //ES6var shallowCompare = require("react-addons-shallow-compare"); //ES5Overview
React.PureComponent가 소개되기 전에, React와 ES6에서는 shallowCompare이 PureRenderMixin과 함수적으로 동일한 기능을 담당했었습니다.
만약 React 컴포넌트의 render 함수가 "pure"( 동일한 state와 props로 동일한 결과를 렌더링할 때를 말합니다.) 이면, 이 helper함수를 성능향상에 사용할 수 있습니다.
Example :
export class SampleComponent extendsReact.Component {shouldComponentUpdate(nextProps, nextState) {return shallowCompare(this, nextProps, nextState);}render() {return <div className = {this.props.className}> foo </div>}}shallowCompare는 현재 props와 next props 객체를 얕은 비교할 뿐만 아니라, 현재 state와 next state 객체 또한 비교할 수 있습니다.
이것은 객체의 키들이 반복되면서 비교하며, 만약 키의 값이 서로 엄격하게 같으면(strictly equal) true를 반환합니다.
shallowCompare은 만약 props 혹은 state를 얕은 비교를 했을 때 비교한 객체가 서로 동등하지않고, 그 결과로 컴포넌트가 업데이트 되야 할 때 true를 반환합니다.
shallowCompare은 또한 만약 props 와 state가 얕은 비교를 했을 때 비교한 객체가 서로 같고, 결과로 업데이트 하지 않아도 될 때 false를 반환합니다.
'Dev > JS' 카테고리의 다른 글
[JS] useEffect에 대한 짧은 가이드 (0) 2019.08.28 [JS] 간단한 Javascript 문제 (0) 2019.08.28 [React.js]Derived State를 언제쓸까? (0) 2018.07.02 [JS] React.js JSX 없이 React 사용하기 (1) 2018.06.03 [JS] React.js Portal 알아보기 (0) 2018.06.03