React

React 활용 예시(Handler01)

goshek 2024. 8. 28. 09:43
import React from 'react'

/*
! React 이벤트 핸들러 (handle: 다루다)
: 사용자와의 상호작용을 처리하기 위한 함수

- UI(사용자 인터페이스)에서 발생하는 이벤트에 반응하여
  , 동작되는 기능을 정의
*/

//# 이벤트 핸들러 예시
// 버튼 클릭 시 >> console 창에 '버튼을 클릭하였습니다.' 출력

//# 이벤트 핸들러에 데이터 전달
interface ConsoleProps {
  message: string;
  children: React.ReactNode; // HTML 요소 + 사용자 정의 컴포넌트
}

// 자식 컴포넌트
// >> 부모 컴포넌트에서 속성으로 문자열 message의 값과
//    해당 컴포넌트 태그들 사이에 내용을 전달 받음
function ConsoleButton({ message, children } : ConsoleProps) {
  // const message = 'A를 동작';
 
  return (
    <button onClick={() => { console.log(`${message}`); }}>
      {children}
    </button>
  )
}

export default function Handler01() {
  function handleButtonClick() {
    console.log('버튼을 클릭하였습니다.');
  }
  return (
    <div>
      {/*
        버튼 요소에 이벤트 등록
        >> prop에 이벤트를 '전달'
        >> on속성으로 작성
          - 속성의 중괄호 내에 JS 기능을 명시 (이벤트 핸들러)

        +) 이벤트 핸들러의 함수는 호출 X, 등록되어야 한다.
      */}
      <button onClick={handleButtonClick}>클릭</button>

      <button onClick={function() {
        console.log('버튼 클릭2');
      }}>클릭2</button>

      <button onClick={() => {
        console.log('버튼 클릭3');
      }}>클릭3</button>

      {/* 핸들러에 데이터 전달 */}
      <ConsoleButton message='A를 동작'>
        {/* ReactNode를 전달 할 경우 HTML 요소의 '내용' 전달 가능 */}
        A를 동작시키는 버튼
      </ConsoleButton>
      <ConsoleButton message='B를 동작'>
        {/* ReactNode를 전달 할 경우 HTML 요소의 '내용' 전달 가능 */}
        B를 동작시키는 버튼
      </ConsoleButton>
    </div>
  )
}

'React' 카테고리의 다른 글

React 활용 예시(useState)  (0) 2024.08.28
React 활용 예시(Handler02)  (0) 2024.08.28
React 활용 예시(Rendering02)  (0) 2024.08.27
React 활용 예시(Rendering01)  (0) 2024.08.27
React 활용 예시(Properties02)  (0) 2024.08.27