Fielder V2의 새로운 기능
11234 단어 reactjavascriptwebdev
이 최신 릴리스는 양식 디자인을 탐구하는 수많은 시간의 결과입니다. 새로운 기능이 있습니다!
우리가 여기까지 온 방법
Fielder의 목표는 기존 양식 라이브러리 제약 조건에서 벗어나는 양식 라이브러리를 만드는 것이었습니다.
모놀리식 유효성 검사 스키마의 경직성을 제거하고 Fielder는 유효성 검사를 양식이 아닌 필드에 결합하여 양식에 대한 더 간단한 솔루션을 제시했습니다.
const [fieldProps, fieldMeta] = useField({
name: "username",
validate: useCallback((value) => {
if (!value) {
throw Error("Username is required!");
}
}, []),
});
Fielder V1의 필드 우선 검증 예
이러한 접근 방식의 변화는 시간이 지남에 따라 진화할 수 있는 간단하고 유연한 형식을 만드는 데 효과적인 것으로 입증되었습니다(with exception).
이것은latest release 이 만트라를 보완하여 진화적이고 적응적인 형태 디자인에 계속 초점을 맞춥니다.
새로운 기능
버그 수정 및 최적화와 함께 이 릴리스에는 다음과 같은 두 가지 주요 기능이 포함되어 있습니다.
검증 이벤트
Validation events은 유효성 검사가 발생하는 시점과 주어진 이벤트에 대해 어떤 유효성 검사 로직이 실행되는지 지정을 단순화하는 Fielder에 새로 추가되었습니다.
const usernameValidation = ({ value, trigger }) => {
// Event agnostic validation (sync)
if (!value) {
throw Error("Username is required");
}
// Validation on submit (async)
if (trigger == "submit") {
return isUsernameTaken(value).then((taken) => {
if (taken) {
throw Error("Username is already taken");
}
});
}
};
위의 예에서
submit
와 같은 유효성 검사 이벤트에 대해서만 더 비싼 비동기 유효성 검사를 실행할 수 있음을 알 수 있습니다.제출
새로운 유효성 검사 이벤트를 보완하기 위해 양식에서 완료 및 진행에 사용할 수 있는 새로운
useSubmit
후크가 있습니다.See the new submission guide in the docs
const { isValidating, hasSubmitted, handleSubmit } = useSubmit(() => {
console.log("Submit validation succeeded!");
});
handleSubmit(); // Trigger submission
유효성 검사가 완료될 때까지 제출 논리가 호출되지 않도록 보호하는
handleSubmit
함수를 반환합니다.비동기
submit
유효성 검사( isValidating
) 상태를 추적하고 handleSubmit
함수가 호출되었는지 여부를 추적하기 위한 추가 상태( hasSubmitted
)도 있습니다.유효성 검사 이벤트와 결합된 이 후크는 자체 상태를 도입할 필요 없이 복잡한 제출별 유효성 검사를 수행하는 데 필요한 모든 도구를 제공합니다.
const usernameValidation = ({ value, trigger }) => {
if (!value) {
throw Error("Username is required");
}
if (trigger == "submit") {
return isUsernameTaken(value).then(taken => {
if (taken) {
throw Error("Username is already taken");
}
})
}
}
const Form = () => {
const [usernameProps, usernameMeta] = useField({
name: 'username',
initialValue: '',
validate: usernameValidation
});
const { isValidating, hasSubmitted, handleSubmit } = useSubmit((values) => {
fetch('/submit-form', {
method: 'POST',
body: JSON.stringify(values),
});
});
return (
<div>
<input type="text" {...usernameProps} />
<button onClick={handleSubmit}>
{isValidating ? <Spinner /> : "Submit"}
</button>
</div>
);
}
시작하다
처음이시거나 업데이트를 원하신다면 docs site로 이동하여 시작하고 새로운 live examples을 확인하십시오.
바라건대, 당신이 이것을 흥미롭게 찾았습니다! 생각이나 의견이 있으시면 언제든지 아래에 드롭하거나 트위터에서 저를 누르십시오 -
면책 조항: 이 기사에 표현된 모든 생각과 의견은 저만의 것입니다.
Reference
이 문제에 관하여(Fielder V2의 새로운 기능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/andyrichardsonn/whats-new-in-fielder-v2-5e8f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)