Giả dụ tình huống là thế này, bạn làm gì đó mà nó ko liên quan đến UI, không cần re-render, nhưng vẫn muốn giá trị này cố định giữa các lần render? useState có thể cố định giá trị, nhưng ngặt nỗi nó sẽ trigger re-render nếu bị thay đổi
Code này chạy không? Không, lý do? bạn có để ý biến id giữa các lần chạy (render) là khác nhau, nói cách khác bạn không clear được cái interval đã setup.
Bạn sẽ phải viết lại sử dụng cách usePersistentValue ở trên
Nói có cảm giác hơi sai trái khi hack như vậy, nhưng nó chạy được.
Tuy nhiên không khuyến khích bạn tự viết như vậy, vì việc cố định giá trị giữa các lần render là nhu cầu khá bình thường nên bạn sẽ được team React làm sẵn cho một API mà xài: useRef
Vẫn là đoạn ứng dụng trên nhưng giờ chúng ta viết lại nó bằng useRef
Công dụng của useRef như đã đề cập, cố định dữ liệu giữa các lần re-render, truy xuất giá trị đó qua thuộc tính current
Một ứng dụng rất phổ biến của useRef là truy xuất đến DOM node. Thí dụ để set focus của input