Provider-less là mặc định: Jotai dùng global WeakMap store nên mọi component share cùng atom value mà không phải bọc Provider.
Khi nào cần Provider:
- Testing — <Provider store={createStore()}> tạo store cô lập cho từng test, tránh state rò rỉ giữa các test.
- Micro-frontend — mỗi widget giữ store riêng.
- Reset toàn bộ atom khi component unmount (ví dụ modal dialog).
Store API dùng để thao tác với atom từ ngoài React (WebSocket handler, analytics):
ts
const myStore = createStore()
myStore.get(atom)
myStore.set(atom, value)
myStore.sub(atom, callback)Đánh đổi: provider-less tiện nhưng dễ gây test pollution nếu quên reset; dùng Provider an toàn hơn cho test nhưng thêm boilerplate. <Provider store={store}> cũng chính là cách để gắn DevTools hoặc persist toàn bộ state của store.