Câu chuyện sau: Hiện tại công ty của tôi có một "cổng" nơi nhiều ứng dụng nội bộ khác nhau được phát triển độc lập và sau đó được dán vào trang web. Có rất nhiều trò chuyện giữa các khung (thường là kiểm tra trạng thái hoặc thiết lập một số trạng thái cho các ứng dụng khác để xem), tất cả đều được lưu trữ trên cùng một tên miền (không phải tên miền chéo). Cách tiếp cận này hoạt động tốt nhưng gần đây chúng tôi đang xem xét chuyển sang redux như cách tiếp cận này có vẻ bẩn và các đội khác nhau đang tung rất nhiều dữ liệu trên window.top
(trên toàn cầu). Điều gì đó giống như redux có thể xử lý nhiều "ứng dụng" "giao tiếp" theo cách thống nhất hơn là chỉ đọc và thiết lập các biến trên window.top
hoặc đây có phải là việc sử dụng sai thông tin không?Nhiều ứng dụng phản hồi giao tiếp mặc dù một cửa hàng redux duy nhất
Trả lời
Các khung có ngữ cảnh khác nhau. Bạn sẽ phải tham khảo cửa hàng mẹ, ví dụ: để cửa hàng (và dispatch
) qua window
. Nó được cho là sạch hơn một loại biến ngẫu nhiên.
Điều đó nói rằng: nếu chúng thực sự là ứng dụng độc lập thì tôi có thể chọn thực sự độc lập thông qua các ổ cắm web trong mỗi khung giao tiếp thông qua các bản cập nhật trực tiếp được cung cấp từ đầu cuối (Elixir, Node, v.v.) -suited cho nhiệm vụ.
Làm như vậy cho phép linh hoạt hơn trong việc tách các ứng dụng (ví dụ, tôi chỉ muốn ứng dụng Foo
chạy trong cửa sổ riêng của nó), nhận được các khung liên kết vào một xe buýt chung để bất cứ điều gì khác muốn xem xét có thể, v.v.
Có, bạn thực sự có thể có một cửa hàng Redux phổ biến ở trang cấp cao nhất và gửi các hành động đến nó. Tuy nhiên nếu bạn muốn các iFrames khác nhau lắng nghe nó cập nhật thì bạn sẽ cần một số phần mềm trung gian Redux để quan sát sự thay đổi trạng thái và cho phép iFrames đăng ký các sự kiện này. Tôi mong đợi mặc dù trong khi điều này có thể cấu trúc mã của bạn tốt hơn một chút để bắt đầu, nếu bạn có rất nhiều đội khác nhau tất cả khỉ vá một cửa hàng Redux duy nhất mã của bạn sẽ nhận được bẩn khá nhanh chóng. Chúc May mắn!
Tôi khuyên bạn nên có thư viện pub/sub, chẳng hạn như postal.js ở trang cấp cao nhất để chuyển thư giữa các ứng dụng khác nhau của bạn và sau đó tạo một cửa hàng đối tượng có tên đơn giản cho dữ liệu được chia sẻ và bảo vệ sử dụng với thư viện liền mạch không thay đổi.
Cách tiếp cận này hoạt động tốt nhưng gần đây chúng tôi đang cân nhắc chuyển sang Redux như phương pháp này dường như đội bẩn và khác nhau được tung rất nhiều dữ liệu trên window.top (toàn cầu).
Khi mọi thứ đến thời điểm này, tôi sẽ xem xét việc dọn dẹp mã hoặc triển khai thực hiện lại. Tôi thường tránh lưu trữ bất cứ thứ gì trên toàn cầu hoặc trên cửa sổ.
Tôi rất muốn giới thiệu thực hiện Redux nếu
- công ty của bạn sẽ sử dụng cổng thông tin này trong một thời
- bạn muốn tìm hiểu Redux (nó thực sự mát mẻ)
- một người nào đó trong nhóm là đã quen thuộc với redux
Tại sao lại là redux?
- nếu bạn đang theo dõi các tiểu bang trên khắp bội điểm hay khung, nó là rất tốt cho việc sử dụng của một nguồn duy nhất của chân lý cho tất cả các quốc gia
- siêu mô-đun và một niềm vui để làm việc với trong một môi trường đội
Theo mô tả của bạn, có vẻ như Redux của bạn là giải pháp hoàn hảo cho sự cố của bạn.
Redux là khá thẳng về phía trước, nhưng tùy thuộc vào phần còn lại của chồng công nghệ của bạn trông như thế nào, bạn có thể cần phải sử dụng một số loại phần mềm trung gian có Redux.
- 1. Lưu trữ đối tượng "toàn cầu" bên ngoài cửa hàng Redux trong ứng dụng React/Redux
- 2. Theo dõi thay đổi tài sản duy nhất trong cửa hàng trong Redux
- 3. Firebase: tiếp tục nghe ChildEventListener mặc dù thoát ứng dụng
- 4. Cách đánh lừa Windows nghĩ rằng ứng dụng của bạn vẫn đang bận, mặc dù nó không phản hồi
- 5. Điểm chuẩn hóa phản hồi api trong ứng dụng Redux là gì?
- 6. Redux normalizr + đối phó với các phản hồi bị giảm
- 7. Phản hồi mua hàng trong ứng dụng và gốc?
- 8. Hành động phản hồi-Redux gửi từ thành phần
- 9. Ứng dụng Cửa hàng Windows - Thực hiện một tác vụ duy nhất khi khởi chạy từ một ô thứ cấp
- 10. Phản ứng Redux chính bất ngờ thông qua để tạo ra cửa hàng
- 11. Đầu đề Cache-Control không được gửi phản hồi mặc dù được định cấu hình trên đối tượng phản hồi
- 12. Triển khai ứng dụng phản ứng-redux trong AWS S3
- 13. Phản ứng/Redux + Soundcloud API
- 14. Lỗi khi sử dụng thành phần được thực hiện với phản ứng, redux và phản ứng-redux và xây dựng với webpack trong ứng dụng phản ứng
- 15. Nhiều hàng với một INSERT duy nhất trong SQLServer 2008
- 16. Phản ứng-Redux tokens client-side
- 17. Cập nhật cửa hàng React-redux nhưng React không
- 18. Giao tiếp giữa nhiều ứng dụng web bằng SignalR
- 19. Giao tiếp WCF với nhiều khách hàng không có IIS
- 20. Apple sẽ chấp nhận ứng dụng của tôi, mặc dù nó có nhiều thông tin hơn?
- 21. Trích xuất giá trị duy nhất từ phản hồi JSON Python
- 22. React Redux và phản ứng-router-dom
- 23. Phản hồi FixedDataTable kích thước hàng/ô phản hồi
- 24. Cách sử dụng một appStoreReceiptURL duy nhất để xác minh nhiều giao dịch StoreKit?
- 25. Thêm cửa hàng chơi ứng dụng web/cửa hàng ứng dụng tiến bộ
- 26. React Native - Redux: Nhiều trường hợp cùng một trạng thái trong ứng dụng
- 27. Java: Nhận phản hồi HTTP nhiều phần
- 28. Android, Nhiều ứng dụng, Nhiều khách hàng, Một kho khóa
- 29. Chia sẻ một dịch vụ duy nhất giữa nhiều ứng dụng angular.js
- 30. rollback giao dịch trong một ứng dụng phản ứng
Việc triển khai Redux không giải quyết được vấn đề cơ bản về giao tiếp giữa các ứng dụng riêng biệt, tuy nhiên, phải không? Đó là INB sạch hơn mà bạn chỉ có một cửa hàng trên cửa sổ chứa, nhưng bạn vẫn có "sự cạnh tranh" cho cửa hàng đó. –