Zustand - State Management là gì? Liệu có thể so sánh được với Redux hay không?
Từ lâu việc quản lý state trong một dự án React đã quá quen thuộc đúng không nào. Những dự án nhỏ ngắn gọn nhanh thì chúng ta thường sử dụng Context và những dự án lớn hơn thì người bắt đầu sử dụng đến Redux (một thư viện javascript hỗ trợ quản lí state trong dự án React). Kể từ khi được sinh ra, nhiều lần cải tiến thì Redux luôn được ưu ái sử dụng vượt trội hơn các đối thủ của nó. Hôm nay, mình xin giới thiệu đến các bạn một state management mới đó chính là Zustand, được sinh ra với cú pháp siêu ngắn gọn, dễ sử dụng. Liệu Zustand có thể so sánh ưu và nhược điểm như thế nào với Redux hay không? Hãy cùng mình tìm hiểu qua bài viết dưới đây nhé!
Zustand - State Management là gì?
Zustand là một state management được tạo ra nhằm mục đích đơn giản hóa việc quản lí state, không cần phải có lớp vỏ bọc và setup nhiều như Redux. Zustand hỗ trợ thiết lập một cách cực kì đơn giản chỉ với Store bạn có thể thoải mái sử dụng và quản lí state mà không cần setup gì thêm.
Hơn thế nữa là Zustand có thể nói là giải quyết các vấn đề liên quan đến zoombie child problem, context loss và react concurrency. Để sử dụng Sustand cho dự án chúng ta cần setup kiến trúc Store. Store đóng vai trò quan trọng nhất của Zustand, nó đóng vai trò là một hook, bạn có thể gần như nhét tất cả mọi thứ vào store, từ các object, các biến và thậm chí cả function. Thật ngạc nhiên, đúng không nào Store sẽ phụ thuộc vào cách sử dụng của bạn như thế nào.
Zustand - State Management
Zustand vs Redux
Nếu ở trên chúng ta đã tìm hiểu về State management mới là Zustand thì liệu Zustand có thể so sánh như thế nào với Redux, khi mà ở thời điểm hiện tại Redux đang thống lĩnh độ phổ biến về State management.
- Zustand:
+ Không cần action, dispatch nhiều thủ tục.
+ Không cần quan tâm đến action type, payload,… không còn sinh ra những switch statement thừa thải nữa.
+ Không cần đến lớp bọc provider.
+ Chỉ cần một file tạo ra một hàm useStore duy nhất.
+ Bundle size chỉ < 1KB.
-Redux:
+ Output đồng nhất, dễ đoán, dễ sync state giữa các component với nhau.
+ Khả năng scale dự án, với việc tổ chức code rõ ràng sẽ dễ dàng scale dự án hơn rất nhiều.
+ Khả năng maintain dự án, Redux hết sức chặt chẽ về cách tổ chức code, action làm gì, reducer làm việc gì,… Mọi thứ đều cụ thể và rõ ràng nên việc maintain sẽ dễ hơn rất nhiều.
Zustand & Redux
Bản chất thật sự mỗi cái đều có ưu thế và điểm mạnh riêng của chúng, nếu nói Redux phổ biến hơn bởi vì khả năng scale và maintain dự án, thì Zustand với khả năng ngắn gọn dễ hiểu, dể sử dụng và linh hoạt trong dự án. Việc một thứ tốt như Redux luôn được đem ra so sánh với State management mới là điều dễ hiểu, cái gì càng tốt dễ bị đem ra so sánh chính vì vị trí phổ biến mà Redux có được. Mỗi state management có cách tổ chức và ưu thế các nhau, nếu dự án nhỏ có thể tích hợp nhanh Zustand để mọi thứ ngắn gọn và nhẹ tải để sử dụng trong dự án và nếu dự án lớn có thể scale dễ dàng thì chắc chắn Redux luôn đi đầu về ưu thế.
Còn các bạn, các bạn nghĩ sao về Zustand và Redux?
----------
Ảnh bìa: https://bom.so/GRu9Ir
Khoá học lập trình
Frontend Master
Lộ trình học hơn 7 tháng và hoàn thành 5 dự án thực tế. Môi trường học như khi bạn đi làm.