2015-10-19 14 views

Trả lời

40

Trong universal apps, bạn sẽ muốn một phiên bản cửa hàng khác nhau trên mọi yêu cầu. Nếu bạn chỉ xuất khẩu cửa hàng như một singleton từ một số mô-đun, bạn sẽ có một thời gian khó khăn thêm việc dựng hình máy chủ.

Đây là lý do tại sao chúng tôi không bao giờ khuyến khích cửa hàng Singleton trong tài liệu và luôn khuyến khích bạn sử dụng <Provider> để chuyển nó xuống phân cấp qua React context. Điều này làm cho cửa hàng có sẵn cho các thành phần tiêu thụ mà không làm cho nó một singleton.

Đối với lý do tại sao connect() từ Phản ứng Redux đi dispatch như một chỗ dựa thay vì store tự-đó là vì bạn không thực sự cần store bản thân trong các thành phần được kết nối. Trạng thái đăng ký và đọc được thực hiện bởi connect() vì vậy bạn sẽ chỉ cần dispatch() trong các thành phần.

+0

Làm cách nào để bạn truy cập cửa hàng từ người tạo hành động, ví dụ: nếu đó không phải là singleton? Tôi đã suy nghĩ về việc có một mô-đun cửa hàng xuất khẩu một singleton và một nhà máy để sử dụng phía máy khách và phía máy chủ, tương ứng. – orourkedd

+0

@orourkedd Tại sao bạn muốn truy cập cửa hàng trong những người sáng tạo hành động? –

+0

Tôi đã suy nghĩ về nó và bây giờ tin rằng đó là một mô hình xấu để truy cập vào các cửa hàng trong những người sáng tạo hành động hoặc trong bất kỳ cách toàn cầu/singleton khác. – orourkedd

1

Thông thường tôi thấy rằng cửa hàng được khởi tạo trong mô-đun cấp cao nhất và sau đó được sử dụng trong các mô-đun cấp thấp hơn theo chức năng kết nối react-redux.

Điều này ngăn sự cần thiết phải nhập cửa hàng trực tiếp trong mô-đun cấp thấp hơn, vì nó sẽ được nhập từ cấp cao nhất.

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