2016-05-01 17 views
11

Tôi đã sử dụng React, Redux từ vài tháng nay. Một trong những phần khó hiểu nhất của hệ sinh thái là luồng dữ liệu không đồng bộ. Có rất nhiều giải pháp tuyệt vời có sẵn và lựa chọn giải pháp phù hợp cho vấn đề của bạn là phần khó khăn.Sự khác nhau giữa Redux-Thunk và Redux-Promise khi được sử dụng với Axios apis là gì?

Trong ứng dụng của tôi, người tạo hành động hầu như không đồng bộ axios [ajax] gọi đến apis cuối của tôi. Tiêm Redux-Promise như một phần mềm trung gian giải quyết vấn đề luồng dữ liệu không đồng bộ.

Xem xét ứng dụng có thể mở rộng, tôi có thể cần phải chuỗi nhiều cuộc gọi trong trình tạo tác vụ của mình. Tôi nghĩ rằng tôi vẫn có thể sử dụng Redux-Promise như một phần mềm trung gian và điều này sẽ chăm sóc luồng dữ liệu không đồng bộ trong ứng dụng của tôi.

Nói chung, nhóm có khuynh hướng sử dụng Redux-Thunk hơn, điều này khiến tôi cảm thấy cú pháp phức tạp hơn cho vấn đề này. Tôi cần các đề xuất trong việc đánh giá 2 khung công tác này vì hầu hết những người tạo hành động của tôi đều đang thực hiện cuộc gọi (chỉ có lời hứa). Tôi đã thấy rất nhiều cuộc thảo luận về Redux-thunk here. Tôi hiểu cách thức thunk có thể hữu ích. . Nhưng tôi cần làm rõ hơn việc đánh giá Redux-Promise và Redux-Thunk với nhau khi chỉ được sử dụng cho Promises. Phần mềm trung gian nào tốt hơn trong tình huống như vậy và tại sao? Tôi có được lợi ích gì khi sử dụng Redux-Thunk qua Redux-Promise? Hay không có gì?

Trả lời

19

Lời hứa Redux thuận tiện cho việc gửi ba hành động (yêu cầu, thành công, thất bại) mà không cần viết mã theo cách thủ công.

Redux Thunk thuận tiện cho luồng dữ liệu không đồng bộ khi bạn thể hiện một người tạo hành động như đang đợi một người tạo hành động khác. Nó cũng cho phép bạn đọc trạng thái hiện tại cho các công văn có điều kiện và các gói cứu trợ sớm.

Bạn có thể sử dụng chúng cùng nhau hoặc sử dụng bất kỳ thiết bị nào cụ thể. Tôi khuyên bạn nên bắt đầu với Redux Thunk vì nó cung cấp nhiều quyền kiểm soát hơn và linh hoạt hơn. Sau khi bạn làm cho nó hoạt động, bạn có thể xem xét thêm Redux Promise để xóa một số mã soạn sẵn liên quan đến việc gửi ba loại hành động. Nếu bạn thấy rằng nó không mua cho bạn nhiều, hãy loại bỏ nó. Mặt khác, nếu bạn nhận thấy tất cả những người sáng tạo hành động chỉ gửi một lời hứa, bạn có thể xóa Redux Thunk thay thế.

Nếu điều này vẫn còn khó hiểu, tôi khuyên bạn chỉ nên sử dụng Redux Thunk cho đến khi bạn cảm thấy thoải mái hơn với cách phần mềm trung gian hoạt động.

+1

Cảm ơn bạn đã làm rõ. Như bạn đã đề cập, những người sáng tạo hành động chỉ đang gửi một lời hứa duy nhất cho đến nay và do đó Redux-Promise có vẻ là giải pháp đầy đủ. Nhưng khi bạn nói về Redux-Thunk cung cấp sự kiểm soát nhiều hơn, bạn có nghĩa là nó cung cấp cho bạn một cách để thừa nhận nhà nước và cũng cử hành động khi chúng ta cần? –

+0

@DishantSoni Vâng, chính xác. –

+0

@DanAbramov bạn có thể hiển thị ví dụ về hiển thị một số dữ liệu cho trang không? Tôi có và điểm cuối nhưng không thể làm cho nó hoạt động. Dưới đây là ví dụ về những gì tôi đang cố gắng làm [link] (https://gist.github.com/anthonybrown/5d5d067718161a4a757c55329714be46) –

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