พื้นฐาน React Spring: ฮุก useSpring
สร้างแอนิเมชันให้ค่าต่าง ๆ ด้วย useSpring โดยกำหนดแรงตึง แรงเสียดทาน และมวลเพื่อการเคลื่อนไหวที่เป็นธรรมชาติ
พื้นฐาน React Spring: ฮุก useSpring เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน
ฟิสิกส์แบบสปริงเทียบกับแอนิเมชันตามระยะเวลา
แอนิเมชัน CSS แบบดั้งเดิมใช้ระยะเวลาคงที่ โดยแอนิเมชันจะเล่นเป็นเวลาตามจำนวนมิลลิวินาทีที่กำหนดแล้วหยุด react-spring ทำให้ค่าเคลื่อนไหวโดยใช้ฟิสิกส์แบบสปริง แอนิเมชันขับเคลื่อนด้วย ความตึง (ความแข็งของสปริง) และ แรงเสียดทาน (แรงที่สปริงใช้ต้านการเคลื่อนที่) จึงทำให้การเคลื่อนไหวชะลออย่างเป็นธรรมชาติและให้ความรู้สึกเหมือนการเคลื่อนไหวจริง
การใช้งาน useSpring เบื้องต้น
ฮุก useSpring({ from, to }) กำหนดค่าที่มีแอนิเมชัน คุณระบุค่าเริ่มต้นใน from และค่าเป้าหมายใน to useSpring ส่งคืนออบเจ็กต์สปริง โดยแต่ละคีย์เป็น SpringValue ซึ่งเป็นค่าตัวเลขหรือสีที่มีแอนิเมชัน
การตั้งค่าของสปริง: ความตึงและแรงเสียดทาน
ตัวเลือก config ควบคุมพฤติกรรมของสปริง ความตึง (ค่าเริ่มต้น 170) ควบคุมความแข็ง โดยค่าที่สูงกว่าจะดีดเข้าสู่ค่าเป้าหมายเร็วขึ้น แรงเสียดทาน (ค่าเริ่มต้น 26) ควบคุมการหน่วง โดยค่าที่ต่ำกว่าจะทำให้เด้งมากขึ้น มวล (ค่าเริ่มต้น 1) เพิ่มความเฉื่อย ค่าทั้งสามนี้ร่วมกันกำหนดลักษณะเฉพาะของแอนิเมชัน
การตั้งค่าล่วงหน้า
ไลบรารีแอนิเมชันแบบสปริงมีการตั้งค่าล่วงหน้าที่ใช้ได้โดยไม่ต้องปรับแต่ง: config.default มีความสมดุลและเหมาะกับการใช้งานทั่วไป config.gentle เคลื่อนไหวช้าและราบรื่น config.wobbly เด้งด้วยแรงเสียดทานต่ำ config.stiff เคลื่อนไหวเร็วและดีดตัวฉับไว และ config.slow ค่อย ๆ เคลื่อนไหวอย่างมาก คุณสามารถนำเข้าได้จากไลบรารีแอนิเมชันแบบสปริง
ออบเจ็กต์ SpringValue
ค่าที่ส่งคืนโดย useSpring คือออบเจ็กต์ SpringValue ไม่ใช่ตัวเลขทั่วไป คุณไม่สามารถเรนเดอร์ออบเจ็กต์เหล่านี้โดยตรงใน JSX หรือใช้ในออบเจ็กต์สไตล์ทั่วไปได้ ต้องนำไปใช้กับคอมโพเนนต์ animated.* ซึ่งรู้วิธีสมัครรับการอัปเดตของสปริงและนำไปใช้กับ DOM ได้อย่างมีประสิทธิภาพ
immediate: ข้ามแอนิเมชัน
การส่ง immediate: true ให้ useSpring ทำให้ค่ากระโดดไปยังเป้าหมายทันที โดยข้ามแอนิเมชันแบบสปริง วิธีนี้มีประโยชน์สำหรับการเรนเดอร์ครั้งแรก เมื่อผู้ใช้เปิดใช้ "ลดการเคลื่อนไหว" ในการตั้งค่าของ OS หรือเมื่อคุณต้องการรีเซ็ตตำแหน่งผ่านโค้ดโดยไม่มีการเคลื่อนไหวที่มองเห็นได้
การย้อนกลับของสปริง
คุณสามารถย้อนกลับแอนิเมชันของสปริงได้โดยสลับว่าค่าใดอยู่ใน from และ to รูปแบบที่พบบ่อยคือเก็บสถานะตัวสลับแบบบูลีนและคำนวณ from/to ตามสถานะนั้น: เมื่อตัวสลับเป็นเท็จ ให้แอนิเมชันทำงานจาก 0 เป็น 1 และเมื่อเป็นจริง ให้ทำงานจาก 1 เป็น 0 รีแอกต์สปริงจะเปลี่ยนผ่านระหว่างสถานะต่าง ๆ อย่างราบรื่น
API แบบคำสั่ง: api.start()
useSpring สามารถส่งคืนอาร์เรย์ที่มีสององค์ประกอบได้: const [springs, api] = useSpring(() => ({ from: { x: 0 } })) ออบเจ็กต์ api ช่วยให้คุณควบคุมผ่านโค้ดได้ เรียกใช้ api.start({ x: 100 }) เพื่อแอนิเมชันไปยังค่าใหม่ เรียกใช้ api.stop() เพื่อหยุดแอนิเมชันค้างไว้ และเรียกใช้ api.set({ x: 50 }) เพื่อกระโดดไปยังค่าใหม่โดยไม่ใช้แอนิเมชัน
ควรใช้รูปแบบประกาศหรือรูปแบบคำสั่งเมื่อใด
ใช้รูปแบบประกาศ useSpring({ from, to }) เมื่อแอนิเมชันขึ้นอยู่กับสถานะของรีแอกต์ที่เปลี่ยนแปลงตามปกติ ใช้รูปแบบคำสั่งร่วมกับ api.start() เมื่อต้องการเรียกใช้แอนิเมชันจากตัวจัดการเหตุการณ์ ท่าทาง หรือการดำเนินการแบบอะซิงโครนัส โดยไม่ทำให้รีแอกต์เรนเดอร์ซ้ำ
ฟังก์ชันเรียกกลับเหตุการณ์ของสปริง
useSpring รองรับฟังก์ชันเรียกกลับตามวงจรชีวิตในค่ากำหนดของมัน onStart จะทำงานเมื่อสปริงเริ่มแอนิเมชัน onChange จะทำงานในทุกเฟรมพร้อมค่าปัจจุบัน ซึ่งมีประโยชน์สำหรับผลข้างเคียงที่ติดตามตำแหน่ง onRest จะทำงานเมื่อสปริงหยุดนิ่งที่ค่าสุดท้าย เพื่อส่งสัญญาณว่าแอนิเมชันเสร็จสมบูรณ์
การเริ่มสปริงใหม่เมื่อสถานะเปลี่ยน
ในรูปแบบประกาศ useSpring จะเริ่มแอนิเมชันใหม่โดยอัตโนมัติเมื่อค่าที่ส่งให้มันเปลี่ยนแปลง ตัวอย่างเช่น useSpring({ opacity: isVisible ? 1 : 0 }) จะแอนิเมชันความทึบทุกครั้งที่ isVisible เปลี่ยนแปลง นี่เป็นวิธีที่ง่ายที่สุดในการเชื่อมแอนิเมชันแบบสปริงเข้ากับสถานะของคอมโพเนนต์
พารามิเตอร์ฟิสิกส์ของสปริง
ในการกำหนดค่าของรีแอกต์สปริง แรงตึง และ แรงเสียดทาน ควบคุมสิ่งใด
ทบทวนบทเรียน: พื้นฐาน useSpring
รีแอกต์สปริงใช้ฟิสิกส์ในการสร้างแอนิเมชัน โดยแรงตึง (ความแข็ง) แรงเสียดทาน (การหน่วง) และมวลจะกำหนดการเคลื่อนไหว useSpring({ from, to }) ส่งคืนออบเจ็กต์ SpringValue ที่นำไปใช้กับคอมโพเนนต์ animated.* ได้ ค่ากำหนดล่วงหน้า (นุ่มนวล, สั่น, แข็ง, ช้า) ครอบคลุมกรณีทั่วไป API แบบคำสั่ง [springs, api] ช่วยให้ควบคุมผ่านโค้ดได้ด้วย api.start(), api.stop() และ api.set() โดย onRest จะทำงานเมื่อแอนิเมชันหยุดนิ่ง
คำถามที่พบบ่อย
บทเรียน “พื้นฐาน React Spring: ฮุก useSpring” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พื้นฐาน React Spring: ฮุก useSpring” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน React Spring: ฮุก useSpring”
สร้างแอนิเมชันให้ค่าต่าง ๆ ด้วย useSpring โดยกำหนดแรงตึง แรงเสียดทาน และมวลเพื่อการเคลื่อนไหวที่เป็นธรรมชาติ คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “พื้นฐาน React Spring: ฮุก useSpring” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม
ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน React Spring: ฮุก useSpring
- คอมโพเนนต์แบบแอนิเมชันและการอินเทอร์โพเลตสไตล์
- useTrail และ useChain สำหรับลำดับแอนิเมชัน
- แอนิเมชันที่ขับเคลื่อนด้วยท่าทางด้วย use-gesture