0Pricing
React Academy · บทเรียน

เริ่มต้นใช้งาน React Hook Form

ติดตั้ง RHF เรียกใช้ useForm ลงทะเบียนช่องรับข้อมูล และจัดการการส่งฟอร์ม

เริ่มต้นใช้งาน React Hook Form เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

ในบทเรียนนี้ คุณจะติดตั้ง React Hook Form เรียกใช้ useForm ลงทะเบียนอินพุต และจัดการการส่งฟอร์มโดยไม่ต้องจัดการตัวแปรสถานะแต่ละตัวด้วยตนเอง

เหตุผลที่ควรใช้ React Hook Form

ฟอร์มแบบควบคุมตามปกติใน React ต้องใช้ useState หนึ่งตัวต่อฟิลด์และ onChange หนึ่งตัวต่ออินพุต React Hook Form (RHF) จัดการทั้งหมดนี้ภายในโดยใช้อินพุตแบบไม่ควบคุม ทำให้มี API ที่เรียบง่ายขึ้นและเรนเดอร์ใหม่น้อยลง

การติดตั้ง

ติดตั้งแพ็กเกจนี้ได้เลย ไม่จำเป็นต้องติดตั้งการพึ่งพาเพิ่มเติมสำหรับการใช้งานพื้นฐาน
npm install react-hook-form

ฮุก useForm

เรียกใช้ useForm() เพื่อรับฟังก์ชัน register ตัวครอบ handleSubmit และ formState ทั้งสามส่วนนี้คือองค์ประกอบหลักที่จำเป็นสำหรับทุกฟอร์ม
import { useForm } from 'react-hook-form';

function LoginForm() {
  const { register, handleSubmit, formState: { errors } } = useForm();
  const onSubmit = data => console.log(data);
  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      ...
    </form>
  );
}

การลงทะเบียนอินพุต

กระจายผลลัพธ์ของ register('fieldName') ไปยังอินพุตแต่ละรายการ RHF จะแนบ ref และตัวจัดการเหตุการณ์เข้ากับอินพุตเบื้องหลัง จึงไม่ต้องใช้ value หรือ onChange
<input {...register('email')} type="email" />
<input {...register('password')} type="password" />
<button type="submit">Log in</button>

คอลแบ็ก onSubmit

handleSubmit จะตรวจสอบความถูกต้องของทุกฟิลด์และเรียกคอลแบ็ก onSubmit ของคุณพร้อมออบเจ็กต์ข้อมูลที่มีชนิดถูกต้อง เฉพาะเมื่อฟอร์มถูกต้องเท่านั้น หากการตรวจสอบไม่ผ่าน ระบบจะเพิ่มข้อมูลลงใน formState.errors แทน
const onSubmit = (data) => {
  // data = { email: 'a@b.com', password: 'secret' }
  loginUser(data);
};

ค่าเริ่มต้น

ส่ง `defaultValues` ให้ useForm เพื่อเติมค่าล่วงหน้าในฟิลด์ของฟอร์ม เหมาะสำหรับฟอร์มแก้ไขที่โหลดข้อมูลเดิมมาแล้ว
const { register } = useForm({
  defaultValues: { email: user.email, name: user.name },
});

คุณสมบัติของ formState

formState แสดงค่าบูลีนที่มีประโยชน์ ได้แก่ `isSubmitting` (เป็น true ขณะที่ handleSubmit กำลังทำงาน), `isDirty` (เป็น true หากมีฟิลด์ใดเปลี่ยนแปลง), `isValid` (เป็น true หากไม่มีข้อผิดพลาด) และออบเจ็กต์ `errors`
const { formState: { isSubmitting, isDirty, isValid, errors } } = useForm();

การรีเซ็ตฟอร์ม

เรียกใช้ `reset()` เพื่อล้างฟิลด์ทั้งหมดและรีเซ็ต formState คุณสามารถส่งค่าเริ่มต้นใหม่ไปด้วยได้หากต้องการ
const { reset } = useForm();

const onSubmit = async (data) => {
  await saveData(data);
  reset(); // clear after submit
};

ข้อได้เปรียบด้านประสิทธิภาพ

เนื่องจาก RHF ใช้อินพุตแบบไม่ควบคุม ฟอร์มจึงไม่เรนเดอร์ใหม่ทุกครั้งที่พิมพ์ ซึ่งต่างจากฟอร์ม React แบบควบคุม การเรนเดอร์ใหม่จะเกิดขึ้นเฉพาะเมื่อมีข้อผิดพลาดในการตรวจสอบหรือสถานะการส่งฟอร์มเปลี่ยนแปลง ทำให้ฟอร์มขนาดใหญ่ตอบสนองได้รวดเร็ว

ตรวจสอบอย่างรวดเร็ว

เมื่อผู้ใช้ส่งฟอร์ม การเรียกใช้ handleSubmit(onSubmit) จะทำอะไร

สรุปทบทวน

ติดตั้ง RHF เรียกใช้ useForm เพื่อรับ register และ handleSubmit กระจาย register() ไปยังอินพุต และครอบตัวจัดการการส่งฟอร์มด้วย handleSubmit กำหนด defaultValues สำหรับฟอร์มแก้ไข และเรียกใช้ reset() หลังส่งฟอร์มสำเร็จ

บทเรียนถัดไป

บทเรียนถัดไป: **กฎการตรวจสอบและข้อความแสดงข้อผิดพลาด** — คุณจะใช้กฎการตรวจสอบที่มีมาให้และแสดงข้อความแสดงข้อผิดพลาดแก่ผู้ใช้

คำถามที่พบบ่อย

บทเรียน “เริ่มต้นใช้งาน React Hook Form” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เริ่มต้นใช้งาน React Hook Form” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เริ่มต้นใช้งาน React Hook Form”

ติดตั้ง RHF เรียกใช้ useForm ลงทะเบียนช่องรับข้อมูล และจัดการการส่งฟอร์ม คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “เริ่มต้นใช้งาน React Hook Form” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม

ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เริ่มต้นใช้งาน React Hook Form
  2. กฎการตรวจสอบและข้อความแสดงข้อผิดพลาด
  3. การตรวจสอบสคีมาด้วย Zod
  4. ช่องฟอร์มแบบไดนามิกด้วย useFieldArray
← กลับไปที่ React Academy