제어된 구성 요소를 사용하여 적절하게 반응
2844 단어 programmingwebdevbeginnersreact
제어되는 구성 요소는 무엇이며 그 이유는 무엇입니까? React 양식 요소는 설정에서 일반 HTML 양식과 유사하지만 State를 사용할 때 몇 가지 추가 작업을 수행할 수 있습니다. 요소가 일반적으로 사용자 입력에 따라 자체 상태를 유지하고 업데이트하는 HTML 형식과 달리 React는
state
변수에 유지되고 setState()
로 업데이트되는 변경 가능한 상태를 사용합니다. 그러나 이러한 방법을 함께 사용하는 것이 우리를 그 영광스러운 단일 진리의 근원으로 이끄는 것입니다. 요소 폼의 값을 React가 제어하는 상태에 연결하면 제어된 구성 요소가 형성됩니다. 제어된 구성 요소는 상태에서 입력 값을 파생합니다.<input />
, <select />
, <textarea />
와 같은 HTML 요소와 함께 state를 현재 상태의 value prop으로 전달할 수 있습니다.아래에 두 개의 입력이 있는 빠른 양식 설정부터 시작하겠습니다.
import React, { useState } from "react";
function myControlledForm() {
const [name, setName] = useState("");
const [favoriteColor, setFavoriteColor] = useState("");
return (
<form>
<input type="text" value={name} />
<input type="text" value={favoriteColor} />
<button type="submit">Submit</button>
</form>
);
}
export default Form;
여기에서 상태 변수
name
와 setter 함수setName
를 설정했습니다. 빈 문자열로 선언된 초기 상태가 있지만 setName
가 호출되는 즉시 업데이트됩니다.양식 요소 자체에서 첫 번째 입력을 이름 상태에 연결하고 두 번째 입력을 선호하는 색상 상태에 연결합니다. 하지만
onChange
이벤트 리스너를 이벤트 핸들러 콜백 함수에 연결해야 합니다.<input type="text" onChange={handleNameChange} value={firstName} />
<input type="text" onChange={handleColorChange} value={lastName} />
이 이벤트 리스너를 입력에 소품으로 추가하면 변경 이벤트를 수신합니다. 변경될 때마다 콜백 함수가 실행되어 사용자 입력 값을 캡처하고 상태 변수를 업데이트합니다.
콜백 함수가 변경 사항을 처리하는 상태 변수에 따라 이름을 지정하는 것이 일반적인 명명 규칙입니다.
function handleNameChange(event) {
setFirstName(event.target.value);
}
function handleColorChange(event) {
setLastName(event.target.value);
}
이러한 함수는 위에서 선언한 해당
event.target.value
함수를 사용하여 onChange
변수를 업데이트하기 위해 입력state
이벤트 핸들러에서 제공하는 setState
를 사용합니다. 상태를 업데이트할 때 다시 렌더링하고 주기가 완료됩니다.그럼에도 불구하고 제어 구성 요소를 사용하는 이유는 무엇입니까? 다음은 몇 가지 주요 이점입니다.
제어된 입력의 정말 멋진 구현이 있습니다. 입력할 때 검색 결과를 필터링하는 방법에 대해 생각하고 싶습니다.
onChange
및 콜백을 사용하여 이 간단한 입력 양식을 제어한 것과 같은 방식으로, 더 확장 가능하고 광범위한 응용 프로그램에서 상태에서 파생된 이러한 검색 값을 사용하여 모든 종류의 데이터를 검색하고 필터링할 수 있습니다.
Reference
이 문제에 관하여(제어된 구성 요소를 사용하여 적절하게 반응), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/e_papanicolas/react-ing-gracefully-with-controlled-components-5dgg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)