>웹 프론트엔드 >JS 튜토리얼 >소품과 상태 React.JS

소품과 상태 React.JS

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-09-28 14:17:301116검색

Props and State React.JS

그럼요! React의 props와 state에 대해 더 자세히 알아보고, 역할과 차이점을 살펴보고, 더 자세한 예시를 제공하겠습니다.

소품(속성)

1. 정의: Props는 속성의 약자입니다. 이는 한 구성 요소에서 다른 구성 요소로, 일반적으로 상위 구성 요소에서 하위 구성 요소로 데이터를 전달하는 방법입니다.

2. 특성:

읽기 전용: 일단 설정되면 하위 구성 요소는 소품을 수정할 수 없습니다. 하위 구성 요소 내에서는 변경할 수 없습니다.
구성에 사용: Prop을 사용하면 구성 요소의 동작과 모양을 사용자 정의할 수 있습니다.
데이터 흐름: Prop은 구성 요소 계층 구조 아래로 데이터와 기능의 흐름을 가능하게 하여 재사용성을 높입니다.
3. 사용법: 문자열, 숫자, 객체, 배열, 함수 등 모든 유형의 데이터를 props를 통해 전달할 수 있습니다.

소품 예시:

// ParentComponent.js
function ParentComponent() {
  const message = "Hello, Child!";

  return <ChildComponent greeting={message} />;
}

// ChildComponent.js
function ChildComponent(props) {
  return <h1>{props.greeting}</h1>;
}

이 예에서는:

  • ParentComponent는 "Hello, Child!"라는 문자열을 전달합니다. Greeting이라는 prop을 통해 ChildComponent에 전달합니다.
  • ChildComponent는 이 prop을 수신하여

    태그.

상태

1. 정의: State는 구성요소의 현재 상태에 대한 정보를 보유하는 내장 React 객체입니다. props와 달리 상태는 구성 요소 자체 내에서 관리됩니다.

2. 특성:

변경 가능: 상태는 setState(클래스 구성 요소의 경우) 또는 useState 후크(기능 구성 요소의 경우)와 같은 함수를 사용하여 변경할 수 있습니다.
로컬에서 구성 요소로: 상태는 정의된 구성 요소에만 적용되며 해제되지 않는 한 다른 구성 요소에서 액세스할 수 없습니다.
반응성: 상태 변경으로 인해 구성 요소가 다시 렌더링되어 UI에서 동적 업데이트가 가능해집니다.
3. 사용법: 상태는 일반적으로 사용자 입력 관리, 구성 요소 상태 추적 및 사용자 상호 작용에 응답하는 데 사용됩니다.

상태 예:

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}

이 예에서는:

  • Counter 구성 요소는 0으로 초기화된 count라는 자체 상태를 유지합니다.
  • 버튼을 클릭하면 setCount 함수가 카운트 상태를 업데이트하여 구성 요소가 다시 렌더링되고 새 카운트가 표시됩니다.

요약

  • Prop은 구성 요소 트리 아래로 데이터를 전달하기 위한 것이며 읽기 전용입니다. 사용자 정의가 가능한 재사용 가능한 구성 요소를 만드는 데 도움이 됩니다.
  • 상태는 구성 요소의 내부 상태를 관리하기 위한 것이며 업데이트될 수 있어 동적 동작 및 렌더링으로 이어집니다.

효과적이고 체계적인 React 애플리케이션을 구축하려면 props와 state의 차이점을 이해하는 것이 필수적입니다. 더 궁금한 점이 있거나 어떤 부분에 대해 추가 설명이 필요한 경우 언제든지 문의하세요!

위 내용은 소품과 상태 React.JS의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.