ES5 클래스 기반 React 구성요소
숫자 스피너를 보여드리겠습니다. 다음은 ES5 React 구성 요소의 기본 골격입니다.
// The constructor cum class declaration
function NumberSpinner(props) {
// equivalent to super(props)
React.Component.call(this,props);
}
// These 2 lines together form the equivalent of
// extends React.Component
NumberSpinner.prototype = Object.create(React.Component.prototype);
NumberSpinner.prototype.constructor = NumberSpinner;
NumberSpinner.prototype.render = function() {
};
스피너에는 3가지 사용 사례만 있습니다.
)
스피너의 상태에는 생성자에 추가되는 1개의 속성
num
만 있습니다.this.state = {num: 0};
사용자가 스피너에 초기 값을 할당할 수 있으려면 소품
initNum
이 있어야 합니다. Vue와 달리 React에서는 this.state = {num: this.props.initNum};
와 같이 직접 소품으로 상태를 초기화하는 것은 권장되지 않습니다. 대신 정적getDerviedStateFromProps
을 사용해야 합니다.NumberSpinner.getDerivedStateFromProps = function(props, state) {
return {num: props.initNum};
};
증가 값
NumberSpinner.prototype.increment = function() {
this.setState(function(state, props) {
return {num: state.num + 1};
}
}
값 감소
NumberSpinner.prototype.decrement = function() {
this.setState(function(state, props) {
return {num: state.num - 1};
}
};
스피너를 렌더링하려면 3개의 요소가 필요합니다. 1개는 현재 값을 표시하고 2개는 증가 및 감소 버튼입니다.
NumberSpinner.prototype.render = function() {
var ce = React.createElement;
var current = ce('div',{key:'current'}, this.state.num);
var increment = ce('button',{key:'increment', onClick: this.increment}, '+');
var decrement = ce('button',{key:'decrement', onClick: this.increment}, '-');
return ce('div',{className:'spinner'}, [current,increment,decrement]);
};
첫 번째 Dev 기사의 초안을 작성한 지 몇 달이 지났고 Internet Explorer는 2일 후에 사라질 것입니다. 그럼 어떤 피드백이든 환영합니다 :)
Reference
이 문제에 관하여(ES5 클래스 기반 React 구성요소), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/citronbrick/es5-class-based-react-components-14jf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)