React/ReactThreeFiber

Event Handling

최 수빈 2025. 3. 12. 18:03

 

이벤트 처리 (Event Handling)

 

사용자의 상호작용(클릭, 입력, 제출 등)을 감지하고 처리하는 방식

 

대표적인 이벤트 핸들러

  • onClick : 버튼 클릭 이벤트
  • onChange : 입력 필드 값 변경 이벤트
  • onSubmit : 폼 제출 이벤트

*React에서 이벤트는 CamelCase(onClick, onChange, onSubmit)로 사용

 

이벤트 핸들링 예:

  • 버튼 클릭 시 값이 추가됨
  • 입력 필드 값 변경 감지 후 업데이트

 

입력 필드 값 변경 감지

import { useState } from "react";

function TodoInput() {
  const [task, setTask] = useState("");

  const handleOnChange = (e) => {
    setTask(e.target.value);
  };

  return (
    <input
      value={task}
      onChange={handleOnChange}
      className="todo-input"
      type="text"
      placeholder="할 일을 입력하세요"
    />
  );
}

사용자가 입력할 때마다 handleOnChange가 실행되며, task 상태가 업데이트 됨

 

 

이벤트 핸들링과 상태 관리

 

React에서는 이벤트를 활용하여 상태 업데이트, UI를 동적으로 변경 가능

useState와 함께 이벤트 핸들러를 조합하여 상태 변화를 반영하는 것이 일반적

 

 

버튼 클릭 시 할 일 추가하기

import { useState } from "react";

function TodoApp() {
  const [task, setTask] = useState("");
  const [tasks, setTasks] = useState([]);

  const handleOnChange = (e) => setTask(e.target.value);

  const handleAddTask = () => {
    if (task.trim() === "") return; // 빈 입력 방지
    setTasks([...tasks, task]); // 기존 목록에 새 항목 추가
    setTask(""); // 입력 필드 초기화
  };

  return (
    <div>
      <input
        value={task}
        onChange={handleOnChange}
        className="todo-input"
        type="text"
        placeholder="할 일을 입력하세요"
      />
      <button onClick={handleAddTask}>추가</button>
      <ul>
        {tasks.map((item, index) => (
          <li key={index}>{item}</li>
        ))}
      </ul>
    </div>
  );
}
  • handleAddTask : 입력된 값을 배열에 추가하고, 입력 필드를 초기화
  • onClick 이벤트 이용, 버튼 클릭 시 할 일을 추가하도록 처리

 

폼 제출 이벤트

onSubmit을 사용하여 폼을 제출

function TodoForm() {
  const [task, setTask] = useState("");

  const handleSubmit = (e) => {
    e.preventDefault(); // 기본 폼 제출 동작 방지
    console.log("입력된 할 일:", task);
    setTask(""); // 입력 필드 초기화
  };

  return (
    <form onSubmit={handleSubmit}>
      <input
        value={task}
        onChange={(e) => setTask(e.target.value)}
        type="text"
        placeholder="할 일을 입력하세요"
      />
      <button type="submit">추가</button>
    </form>
  );
}
  • e.preventDefault() : 폼 제출 시 페이지가 새로고침되는 기본 동작 방지
  • onSubmit : 핸들러에서 상태를 업데이트하고 할 일을 추가하는 로직 처리

 

onClick을 사용한 EventHandling

 

'React > ReactThreeFiber' 카테고리의 다른 글

React로 사고하기  (1) 2025.03.13
Component  (0) 2025.03.12
State  (1) 2025.03.12
JSX  (1) 2025.03.11
CRA(Create React App)  (0) 2025.03.11