Trung BìnhState Management iconState Management

persist middleware trong Zustand hoạt động như thế nào?

persist middleware serialize state ra storage và rehydrate khi app khởi động — dùng partialize để chỉ lưu phần cần thiết và version+migrate để handle schema changes.

  • Middleware persist từ 'zustand/middleware' serialize state thành JSON rồi lưu vào storage, rehydrate khi app khởi động.
  • Config quan trọng: name (storage key, bắt buộc), partialize để chọn phần state cần persist — tránh lưu thừa: partialize: (s) => ({ user: s.user, theme: s.theme }) (không lưu loading/error states), storage để override engine: createJSONStorage(() => sessionStorage) hoặc custom AsyncStorage cho React Native. onRehydrateStorage là lifecycle hook chạy khi rehydrate: onRehydrateStorage: () => (state, error) => { if (error) console.error('hydration failed', error) }. version + migrate để handle schema changes giữa các app versions: version: 2, migrate: (persistedState, version) => { if (version === 1) return { ...persistedState, newField: 'default' } }.

Pitfall: persist không merge deep — nếu cấu trúc state thay đổi giữa releases mà không có migrate, rehydrate sẽ cho state không hợp lệ.

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

Mở danh sách State Management