</>
⌕
Junior #virtual-dom#rendering#fundamentals

Virtual DOM là gì và vì sao React dùng nó?

⚡ Trả lời nhanh

Virtual DOM là cây object JS mô tả UI. Khi state đổi, React render cây mới, so sánh (diff) với cây cũ rồi chỉ áp dụng phần thay đổi tối thiểu vào DOM thật. Lợi ích chính là mô hình khai báo, không phải luôn nhanh hơn thao tác DOM thủ công.

Luồng cập nhật: state đổi, render (tạo cây element mới), diff với cây cũ, commit các thay đổi tối thiểu vào DOM thật.

  • Bạn mô tả UI “trông thế nào” theo state, React lo việc cập nhật DOM.
  • Gom nhiều thay đổi thành một đợt commit, tránh thao tác DOM thừa.
  • Cây element cũng cho phép render ở môi trường khác DOM (React Native, SSR).
function Counter() {
  const [n, setN] = useState(0);
  // Mỗi lần click: render lại, diff chỉ thấy text node đổi
  return <button onClick={() => setN(n + 1)}>Đã bấm {n}</button>;
}
🃏 Ôn bằng flashcard