-
[React] 버튼 클릭 시마다 1 증가 기능program_language 및 궁금한것/ReactJS 2019. 10. 13. 13:01<div id="root"></div> 태그 선언후 아래 코드를 작성해 준다.
class Counter extends React.Component{ constructor(props){ super(props); this.state={ value:0 }; this.handleClick=this.handleClick.bind(this); } handleClick(){ this.setState({ value:this.state.value+1 }); } render(){ return( <div> <h2>{this.state.value}</h2> <button onClick={this.handleClick}>Press Me</button> </div> ) } } class App extends React.Component { render() { return ( <Counter/> ); } }; ReactDOM.render( <App></App>, document.getElementById("root") );
* 클릭할때마다 증가값을 주는 메소드
두번째 방법으로 코드를 짜는것은 지양해야 한다.
개발자 모드에서 나는 경고만 봐도 어마무시하게 길다...
o 권장하는 방법 handleClick(){ this.setState({ value:this.state.value+1 }); } x 전혀 권장하지 않는 방법 handleClick(){ this.state.value=this.state.value+1; this.forceUpdate(); }
* 버튼 클릭할때 onClik을 거는 부분에 혹시라도 메소드 형식으로 호출하면 안된다.
this.handleClick() 으로 호출을 하게 된다면 랜더링을 할때마다 해당 함수를 실행하기 때문에 엄~~~청 많은 숫자가 나온다.
o 정상적인 사용 <button onClick={this.handleClick}>Press Me</button> x 비정상적인 사용 <button onClick={this.handleClick()}>Press Me</button>
반응형'program_language 및 궁금한것 > ReactJS' 카테고리의 다른 글
react-scripts 은(는) 내부 또는 외부 명령 실행할 수 있는 프로그램 또는 배치 파일이 아닙니다 (0) 2020.06.11 [React] LifeCycle API (0) 2019.10.16 [React] ES6문법을 ES5문법으로 확인해보자 (0) 2019.10.13 [React] JSX와 React 초기 사용 방법 (0) 2019.10.12 [React] 리엑트란? (0) 2019.10.12