เก็บค่าต่อเนื่องโดยไม่เรนเดอร์ใหม่
เก็บค่าที่เปลี่ยนแปลงได้ข้ามการเรนเดอร์โดยไม่ทำให้เกิดการเรนเดอร์ใหม่ เปรียบเทียบ useRef กับ useState ด้วยตัวนับอย่างง่ายและรหัสตัวจับเวลา
เก็บค่าต่อเนื่องโดยไม่เรนเดอร์ใหม่ เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 3 บทเรียน
เหตุผลที่ต้องใช้ useRef
เป้าหมาย: จัดเก็บค่าที่คงอยู่ข้ามการเรนเดอร์ซ้ำได้โดยไม่ทำให้เกิดการเรนเดอร์ใหม่ useRef มอบกล่อง .current ที่คงที่ให้คุณ
- คงอยู่ข้ามการเรนเดอร์
- การเปลี่ยนค่าไม่ทำให้เกิดการเรนเดอร์ซ้ำ
- เหมาะสำหรับตัวจับเวลาและค่าก่อนหน้า
รีฟเทียบกับสถานะ
การอัปเดต useState ทำให้ส่วนติดต่อผู้ใช้เรนเดอร์ซ้ำ แต่การอัปเดต useRef ไม่ทำเช่นนั้น ให้เลือกรีฟสำหรับตัวช่วยที่เปลี่ยนค่าได้ (เช่น รหัสและตัวนับสำหรับตรรกะ) ไม่ใช่สำหรับข้อมูลส่วนติดต่อผู้ใช้
สาธิต: ตัวนับการเรนเดอร์ด้วยรีฟ
เราเพิ่มค่า renderCount ในเอฟเฟกต์และเก็บไว้ในรีฟ ค่านี้คงอยู่ข้ามการเรนเดอร์ แต่ไม่ทำให้เกิดการเรนเดอร์ซ้ำ
<div id="root"></div>
กรณีที่เหมาะกับ useRef
กรณีที่เหมาะสม:
- รหัสตัวจับเวลาหรือช่วงเวลา
- แคชของค่าก่อนหน้า
- แฟล็กระหว่างการเรนเดอร์ (เช่น isMounted)
ไม่ควรใช้สำหรับ: ข้อมูลที่ต้องปรากฏในส่วนติดต่อผู้ใช้
สาธิต: รหัสตัวจับเวลาในรีฟ
เก็บรหัสช่วงเวลาไว้ในรีฟ เพื่อให้เราเริ่มหรือหยุดตัวจับเวลาได้โดยไม่ทำให้เกิดการเรนเดอร์ซ้ำเพิ่มเติม
<div id="root"></div>
ข้อควรระวังและเคล็ดลับ
ข้อควรระวัง:
- อย่าอ่านรีฟเพื่อควบคุมส่วนติดต่อผู้ใช้โดยไม่มีสถานะ—ส่วนติดต่อผู้ใช้จะไม่อัปเดต
- รีเซ็ตรีฟเมื่อถอดคอมโพเนนต์ออก หากรีฟเก็บรหัสหรือทรัพยากรไว้
- หลีกเลี่ยงการใช้รีฟมากเกินไปเสมือนเป็นถุงข้อมูลส่วนกลาง
ตรวจสอบแนวคิด useRef
สรุป
สรุป: ใช้ useRef สำหรับค่าที่เปลี่ยนแปลงได้และคงอยู่ข้ามการเรนเดอร์ เช่น รหัส ค่าก่อนหน้า หรือแฟล็ก โดยไม่ทำให้เกิดการเรนเดอร์ซ้ำ ใช้สถานะสำหรับส่วนติดต่อผู้ใช้ที่มองเห็นได้
คำถามที่พบบ่อย
บทเรียน “เก็บค่าต่อเนื่องโดยไม่เรนเดอร์ใหม่” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เก็บค่าต่อเนื่องโดยไม่เรนเดอร์ใหม่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เก็บค่าต่อเนื่องโดยไม่เรนเดอร์ใหม่”
เก็บค่าที่เปลี่ยนแปลงได้ข้ามการเรนเดอร์โดยไม่ทำให้เกิดการเรนเดอร์ใหม่ เปรียบเทียบ useRef กับ useState ด้วยตัวนับอย่างง่ายและรหัสตัวจับเวลา คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน
บทเรียน “เก็บค่าต่อเนื่องโดยไม่เรนเดอร์ใหม่” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม
ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เก็บค่าต่อเนื่องโดยไม่เรนเดอร์ใหม่
- เข้าถึงโหนด DOM การวัดขนาด และการกำหนดโฟกัส
- รีฟที่เปลี่ยนแปลงได้สำหรับตัวจับเวลาและรหัส