REACT/Study

[처음 만난 리액트] 섹션 8. Handling Events

ㅈㅣㄴ 2024. 2. 13. 20:23

 

[처음 만난 리액트] 섹션 8. Handling Events

 

Event

 

사건. 특정 사건을 의미

 

사용자가 버튼을 클릭한 사건

버튼 클릭 이벤트

 

DOM의 Event

 

<button onclick="activate()">
	Activate
</button>

 

리액트의 Event

 

<button onClick={activate}>
	Activate
</button>

 

camelCase

 

Event Handler

 

어떤 사건이 발생하면 사건을 처리함

Event Listener 라고도 함

 

class Toggle extends React.Component {
	constructor(props) {
    	super(props);
        
        this.state = { isToggleOn: true };
        
        //callback 에서 this 를 사용하기 위해서는 바인딩을 필수적으로 해줘야 합니다.
        this.handleClick = this.handleClick.bind(this);
    }
    
    handleClick() {
    	this.setState(prevState => ({
        	isToggleOn: !prevState.isToggleOn
        }));
    }
    
    render() {
    	return (
        	<button onClick = {this.handleClick}>
            	{this.state.isToggleOn ? '켜짐' : '꺼짐'}
            </button>
        );
    }
}

 

class MyButton extends React.Component {
	handleClick() {
    	console.log('this is:', this);
    }
    
    render() {
    	// 이렇게 하면 'this' 가 바운드됩니다.
        return (
        	<button onClick={() => this.handleClick()}>
            	클릭
            </button>
        );
    }
}

 

Arrow function 사용

 

Arguments 전달하기

 

Arguments : 주장, 논쟁, 말다툼

 

함수에 주장할 내용 , 함수에 전달할 데이터

 

Event handler 에 전달할 데이터

 

매개변수.

 

<button onClick={(event) => this.deleteItem(id, event)}> 삭제하기 </button>
<button onClick={this.deleteItem.bind(this, id)}> 삭제하기 </button>

 

function MyButton(props) {
	const handleDelete = (id, event) => {
    	console.log(id, event.target);
    };
    
    return (
    	<button onClick={(event) => handleDelete(1, event)}>
        	삭제하기
        </button>
    );
}

 

실습 : 클릭 이벤트 처리하기