1.class로 event 발생시키기
<div id="root"></div>
<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel">
// function Component(){
// return (<div>
// <button onClick = {()=>{
// console.log("click")
// }}
// >
// 클릭
// </button>
// </div>
// );
// }
class Component extends React.Component{
state = {
count:0,
}
render(){
return(
<div>
<p>
{this.state.count}
</p>
<button
onMouseEnter = {()=>{
console.log("clicked");
this.setState((state)=> ({
...state,
count:state.count+1
}));
}}
>
클릭
</button>
</div>
)
}
}
ReactDOM.render(<Component />, document.querySelector("#root"));
2. click 메서드를 하단에 분리할 경우 this가 연결점이 없기 때문에
상단 constructor에 작성하여 bind 하거나
arrow function을 click 메서드 내에 실행시켜 this를 연결
class Component extends React.Component{
state = {
count:0,
}
//1.construcor
// constructor(props){
// super(props);
// this.click = this.click.bind(this);
// }
render(){
return(
<div>
<p>
{this.state.count}
</p>
<button
onClick = {this.click}>클릭</button>
</div>
)
}
// 이벤트의 내용물을 하단으로 분리시
//하단 setState의 this가 bind가 안되어있어 오류가 뜨므로
<div id="root"></div>
<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel">
//1.상단에 constructor 생성하여 bind 함수 만들어서 this 묶어주기
//2. arrown function으로 this 연결
// click(){
// console.log("clicked");
// this.setState((state)=> ({
// ...state,
// count:state.count+1
// }));
// }
// }
click = ()=>{
console.log("clicked");
this.setState((state)=> ({
...state,
count:state.count+1
}));
}
}
ReactDOM.render(<Component />, document.querySelector("#root"));
</script>
'프론트엔드 공부 > react' 카테고리의 다른 글
component 라이프사이클 변경(v16.3이후) (0) | 2021.05.29 |
---|---|
react component lifycycle (16.3ver이전) (0) | 2021.05.29 |
객체형state,constructor형 state/setState 두가지방법 (0) | 2021.05.29 |
함수와 class를 이용한 component 만들기, default 값 설정하기 (0) | 2021.05.29 |
React JSX 문법 (0) | 2021.05.28 |