-
[React Advanced] Typechecking With PropTypes프로그래밍/웹 2018. 4. 6. 21:48
Typechecking With PropTypes.md Typechecking With PropTypes
리액트 버전 v15.5부터
React.Proptypes
가prop-types
라이브러리로 이동 되었습니다.하위 버전에서는 codemod script를 사용해서 변환하세요.
프로젝트의 크기가 커지면 커질 수록 타입 체크와 관련된 수많은 버그들이 쏟아져 나올 것이다. Flow나 TypeScript를 이용해서 타입 체크를 수행할 수도 있겠지만, 리액트에서는 빌트인 타입체크 툴을 제공한다. 컴포넌트 내에서 사용하는 props에 대해서 타입체크를 수행하기 위해서는
propTypes
라는 특수한 속성을 사용하면 된다.PropTypes
는 컴포넌트에서 사용하는 데이터의 유효성을 검사하는데 사용되는 다양한 종류의 유효성 검사 툴을 가지고 있다. 위의 예제에서는PropTypes.string
을 사용하고 있다. 유효하지 않은 값이 props를 통해 전달되면 자바스크립트 콘솔에서 경고문을 볼 수 있을 것이다. 실제 앱 구동시에는 성능상의 이유로 인해서 동작하지 않고, 개발 중에만propTypes
가 동작한다.PropTypes
위의 예제는 종류별로 지원 가능한
PropTypes
를 사용하는 예제이다.Requiring Single Child
위의 에제처럼
PropTypes.element
속성을 사용하여 반드시 한개의 하위 엘리먼트가 전달 되도록 체크할 수도 있다.Default Prop Values
defaultProps
속성을 사용하면props
에 할당 될 기본 값을 정의할 수도 있다.Babel등을 사용하여 transform-class-properties를 이용하면,
defaultProps
를 컴포넌트의 static 속성으로 정의 할 수도 있다. 아직 리액트의 기본 기능으로 정의 되지 않았으므로, 실제로 사용하려면 웹에 뿌리기 이전에 컴파일 단계를 거쳐야 한다. 예제는 아래와 같다.위의 두 예제는
this.props.name
에 아무 입력이 없을 경우 'stranger'가 저장되도록 하는 코드이다.propTypes
의 타입 체킹은defaultProps
가 할당 된 이후에 발생하므로,defaultProps
의 내용이 잘 못 작성 되었을 경우에는 타입체킹이 수행된다.'프로그래밍 > 웹' 카테고리의 다른 글
[TypeScript] TypeScript로 ReactJS 작성하기 (0) 2018.07.04 React에서 Bootstrap v4 사용하기 (0) 2018.05.03 [React Advanced] JSX In Depth (0) 2018.04.05 [ReactJS] Thinking in React (0) 2018.04.05 [ReactJS] Composition vs Inheritance (0) 2018.04.03