2017-01-11 19 views
15

Tôi đã học về Redux và một phần mà tôi không rõ là, làm cách nào để quyết định giữa việc sử dụng trạng thái phản ứng với lưu trữ redux và sau đó gửi các hành động. từ đọc sách của tôi cho đến nay có vẻ như tôi có thể sử dụng trạng thái React thay cho lưu trữ Redux và vẫn hoàn thành công việc. Tôi hiểu sự tách biệt các mối quan tâm với việc sử dụng kho lưu trữ Redux và chỉ có 1 thành phần container và phần còn lại của nó là thành phần không trạng thái nhưng làm cách nào để xác định thời điểm sử dụng kho lưu trữ Reacux state Redux không rõ ràng với tôi. Ai đó có thể giúp đỡ?Khi nào tôi chọn React state Vs Redux Store

Cảm ơn!

+1

Đây là một tình trạng khó xử chung gặp phải bởi những người tham gia React Redux. Nhưng tôi khuyên bạn nên hiểu sự khác biệt giữa trạng thái Ứng dụng so với trạng thái thành phần. – semuzaboi

+0

Dan Abramov (tác giả của Redux) [đã trả lời câu hỏi này] (https://github.com/reactjs/redux/issues/1287). – totymedli

Trả lời

20

Nếu nhà nước không cần phải được chia sẻ với các thành phần khác, hoặc trạng thái không cần phải giữ khi thành phần được unmounted, sau đó bạn chỉ có thể đặt nó trong trạng thái của thành phần.

Bạn có thể nghĩ rằng kho lưu trữ Redux là cơ sở dữ liệu của giao diện người dùng, nếu bạn có dữ liệu sản phẩm được lấy từ API, thì cửa hàng Redux là đúng nơi; nếu bạn có một thành phần thả xuống, điều này sẽ mất một ngưỡng isOpen, thì phụ huynh của trình đơn thả xuống đó chỉ có thể giữ dropdownIsOpen làm trạng thái thành phần.

Để biết thêm thông tin, đây là câu trả lời từ Dan: https://github.com/reactjs/redux/issues/1287

Ngoài ra bạn nói

chỉ có 1 thành phần container và phần còn lại của nó như là stateless phần

này là không chính xác . Bạn có thể có nhiều thành phần vùng chứa. Thành phần vùng chứa cũng có thể chứa một thành phần vùng chứa khác.

+0

Đúng.Đồng thời xem các câu trả lời này từ Câu hỏi thường gặp về Redux: http://redux.js.org/docs/faq/OrganizingState.html#organizing-state-only-redux-state, http://redux.js.org/docs/faq /ReactRedux.html#react-multiple-components. – markerikson

0

Bạn hoàn toàn đúng. Redux (và kiến ​​trúc thông lượng nói chung) chỉ là các công cụ hình thức để giúp xây dựng các ứng dụng lớn. Chúng không cần thiết chút nào.

Có thực sự là một bài thú vị được gọi là Bạn có thể không cần Redux bởi Dan Abramov, tác giả của Redux mà có thể cung cấp cho bạn một câu trả lời tốt hơn tôi làm: https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367#.7093fm1z8

0

Từ cuốn sách:

Trước hết, chúng ta nên luôn luôn ghi nhớ rằng chỉ có tối thiểu lượng dữ liệu cần phải được đưa vào nhà nước. Ví dụ: nếu chúng tôi phải thay đổi nhãn khi nút được nhấp, chúng tôi không được lưu trữ văn bản của nhãn, nhưng chúng tôi chỉ nên lưu cờ Boolean cho chúng tôi biết nút đã được nhấp hay chưa. Thứ hai, chúng ta nên chỉ thêm vào trạng thái các giá trị mà chúng tôi muốn cập nhật khi sự kiện xảy ra và chúng tôi muốn làm cho thành phần hiển thị lại. Một cách khác để tìm hiểu xem tiểu bang có đúng chỗ để thông tin cửa hàng là để kiểm tra xem dữ liệu chúng tôi có bền vững là cần thiết bên ngoài chính thành phần đó hoặc bởi con cái của nó. Nếu nhiều thành phần cần theo dõi cùng một thông tin, chúng tôi nên xem xét sử dụng trình quản lý nhà nước như Redux ở cấp ứng dụng.

Các vấn đề liên quan