Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- react
- ObservableObject
- 애플 아카데미 후기
- global soop
- useReducer
- Swift 디자인패턴
- 네이버 치지직
- 네이버 부스트캠프
- OS
- 운영체제
- StateObject
- 치지직
- Swift 기능
- 데이터베이스 공부
- SWIFT
- 애플 디벨로퍼 아카데미
- apple developer academy 후기
- 애플 디벨로퍼 아카데미 21주차 회고
- 데이터베이스
- 애플 디벨로퍼 아카데미 후기
- 숭실대
- ObservedObject
- 제앱소
- iOS 개발 오류
- Swift 문법
- 앱 비교 프로젝트
- 소프트웨어분석및설계
- Apple Developer Academy @ POSTECH
- swift문법
- sqoop
Archives
- Today
- Total
사과하는 제라스
4장. 이벤트 핸들링 본문
목차
728x90
반응형
이벤트: 사용자가 웹 브라우저에서 DOM 요소들과 상호작용하는 것.
이벤트 사용 시 주의사항
1. 이벤트명은 카멜 표기법으로 작성
2. 실행할 자바스크립트 코드가 아닌 함수 형태의 값을 전달하는 것임.
3. DOM 요소에만 이벤트를 설정할 수 있음.
이벤트 종류
Clipboard / Touch / Composition / UI / Keyboard / Wheel / Focus / Media / Form / Image / Mouse / Animation / Selection / Transition
이벤트 객체는 SyntheticEvent로 웹 브라우저의 네이티브 이벤트를 감싸는 객체이다.
-> 네이티브 이벤트와 달리 이벤트가 끝난 후 초기화되므로 정보를 참조 불가능...
∴ 비동기적으로 이벤트 객체를 참조할 일이 있으면 e.persist() 함수를 호출해 줘야 함.
함수가 호출될 때 this는 호출부에 따라 결정되기에, 클래스의 임의 메소드가 특정 HTML 요소의 이벤트로 등록되는 과정에서 메소드와 this의 관계가 끊겨버림.
∴ 메소드를 this와 바인딩하는 작업이 필요함.
ex.
constructor(props){
this.handleChange = this.handleChange.bind(this);
}
근데 이렇게 계속 생성자 메소드에서 바인딩하는 거 귀찮잖슴...?
그러면 다음과 같이 babel의 transform-class-properties 문법을 사용해서 화살표 함수 형태로 메소드를 정의할 수도 있음.
handleChange = (e) => {
this.setState({
message:e.target.value
});
}
<Skill>
객체 안에서 key를 [ ]로 감싸면 그 안에 넣은 레퍼런스가 가리키는 실제 값이 key 값으로 사용됨.
handleChange = e => {
this.setState({
[e.target.name]: e.target.value
});
}
728x90
반응형
'코테이토 동아리 > [코테이토]React 스터디 5기' 카테고리의 다른 글
6장. 컴포넌트 반복 (0) | 2023.01.27 |
---|---|
5장. ref: DOM에 이름 달기 (0) | 2023.01.27 |
3장. 컴포넌트 (0) | 2023.01.16 |
2장. JSX (0) | 2023.01.16 |
1장. 리액트 시작 (0) | 2023.01.16 |