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

เก็บค่าต่อเนื่องโดยไม่เรนเดอร์ใหม่

เก็บค่าที่เปลี่ยนแปลงได้ข้ามการเรนเดอร์โดยไม่ทำให้เกิดการเรนเดอร์ใหม่ เปรียบเทียบ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. เก็บค่าต่อเนื่องโดยไม่เรนเดอร์ใหม่
  2. เข้าถึงโหนด DOM การวัดขนาด และการกำหนดโฟกัส
  3. รีฟที่เปลี่ยนแปลงได้สำหรับตัวจับเวลาและรหัส
← กลับไปที่ React Academy