So sánh bundle size và performance giữa Jotai và Zustand?

Bundle size (minified+gzipped): Jotai ~3KB, Zustand ~1KB (core) đến ~8KB với middleware.

  • Re-render characteristics: cả hai đều fine-grained — chỉ re-render component subscribe đúng atom/slice thay đổi, khác Context API re-render cả cây.
  • Jotai vs Zustand về performance: Jotai atomic model tốt cho graph-shaped state với nhiều derived values (mỗi atom có dependency tracking riêng), Zustand tốt hơn khi cần batch updates và ít derived state vì single-store overhead thấp.
  • Tree-shaking: cả hai đều tree-shakeable tốt (ESM-first).
  • Memory: Jotai dùng WeakMap nên atoms tự GC khi không còn reference, Zustand giữ store reference khi còn subscriber.
  • Benchmark thực tế (js-framework-benchmark): hai thư viện tương đương về raw render speed, bottleneck thường là React reconciliation chứ không phải state library.
  • Khuyến nghị: Zustand cho simplicity và tiny bundle, Jotai cho fine-grained atomic state với nhiều derived values.

Xem toàn bộ State Management cùng filter theo level & chủ đề con.

Mở danh sách State Management