React

[React] React Event

ui-o 2023. 12. 21. 14:33
반응형

React Event

  • 웹 브라우저의 HTML 이벤트와 인터페이스가 동일하여 사용방법이 유사함

이벤트 사용시 유의사항

  • 이벤트 이름 : CamelCase 표기법 사용
  • 이벤트에 실행할 자바스크립트 코드를 전달하는 것이 아닌, 함수 형태의 값을 전달해줌
// 1. 외부에서 함수 생성 후 호출
const Func=()=> {}

<button onCick={Func}></button>

// 2. 태그 내에서 함수를 만들어 사용
	<button onCick={()=>{console.log(1);
			}}></button>
  • DOM요소에만 이벤트를 설정할 수 있고, 직접 만든 컴포넌트 요소에는 이벤트를 자체적으로 설정할 수 없음
	// 직접 사용 불가
      <Color onClick={func}/>
// 전달받은 props를 컴포넌트 내부의 DOM 이벤트로 설정 가능
	<div onClick={this.props.onClick}></div>

 Sources

  • 클래스 컴포넌트 활용 input 입력 출력
    import { Component } from 'react';
    
    class EventFunc extends Component {
      state = {
        name: '',
        message: '',
      };
    
      mChange = (e) => {
        this.setState({ [e.target.name]: e.target.value });
      };
      mPress = (e) => {
        e.key === 'Enter' ? console.log('enter') : console.log('press');
      };
      render() {
        return (
          <>
            <p>{this.state.message}</p>
            {/* this를 컴포넌트자신을 가리킬 수 있도록 메서드와 바인딩 필요 */}
            <input type='text' name='message' value={this.state.msg} onChange={this.mChange} onKeyDown={this.mPress} />
            <button>Press</button>
          </>
        );
      }
    }
    
    export default EventFunc;
  • 함수형 컴포넌트 input 입력 출력
    import { useState } from 'react';
    
    const EventFunc = () => {
      const [txt, setTxt] = useState({
        name: '',
        msg: '',
      });
      const { name, msg } = txt;
    
      const mChange = (e) => {
        const undateTxt = {
          ...txt,
          [e.target.name]: e.target.value,
        };
        setTxt(undateTxt);
      };
      return (
        <>
          <p>
            {name} / {msg}
          </p>
          <input type='text' name='name' value={name} onChange={mChange} />
          <input type='text' name='msg' value={msg} onChange={mChange} />
        </>
      );
    };
    
    export default EventFunc;​


 

반응형

'React' 카테고리의 다른 글

[React] React LifeCycle  (0) 2023.12.28
[React] React Reference  (0) 2023.12.21
[React] React state  (0) 2023.12.18
[React] 기본 코드 설명  (0) 2023.12.15
[React] React 기본 코드  (0) 2023.11.08