2016-05-31 16 views
6

Tôi đang xem xét tích hợp phản ứng-redux vào một codebase 3 tuổi của Angularjs. Tôi không muốn refactor tất cả các codebase cùng một lúc, thay vì từng bước giới thiệu phản ứng-redux thông qua các tính năng mới mà nhóm của tôi sẽ phát triển.Tích hợp phản ứng-redux vào ứng dụng Angularjs hiện có

  1. Có cách nào hay nhất để làm như vậy không? (bất kỳ tài nguyên nào sẽ được đánh giá cao)
  2. Tính năng cũ (viết bằng ng) có chứa các phần phản ứng-redux hay tôi sẽ phải viết lại nó?
  3. Tôi làm cách nào để tránh thực hiện các cuộc gọi API giống nhau? (nếu cả hai đều cần cùng tài nguyên)
  4. Tôi có nên tránh thay đổi tất cả cùng nhau không?
+0

Xin chào Alex. Tôi muốn biết bạn đã quyết định gì (và hy vọng tại sao) vì nhóm của chúng tôi đang cố gắng giải quyết một vấn đề tương tự. – Manu

+0

Chúng tôi đã quyết định trì hoãn việc tích hợp trong vài tháng. Đã mua một chút thời gian của tôi :) –

+0

Xin chào Alex, bạn đã từng nghĩ về việc chuyển đổi lớp dữ liệu thành redux đơn giản, thay vì phản ứng-redux? Nếu bạn bắt đầu với redux, bạn sẽ có thể trừu tượng * chỉ * lớp dữ liệu, có thể dễ dàng hơn nhiều so với việc chuyển đổi các thành phần dữ liệu _and_ ui ... điều này có thể giúp bạn giữ các thành phần 'ng'. –

Trả lời

0

Tôi đã thành công di cư các ứng dụng dưới nâu lĩnh vực hạn chế tôi chỉ ra ở câu hỏi ban đầu.

Giải pháp này dựa trên hai phương pháp:

  1. Linh kiện nhỏ - là những thành phần được chứa khá nhiều. Ví dụ: thông báo thả xuống.
  2. Toàn bộ một phần của Ứng dụng mà tôi chưa thể di chuyển - về cơ bản một số tuyến đường/lượt xem vẫn được viết bằng Góc.

Cả hai tiếp cận sử dụng một kỹ thuật tương tự như một trong đó gợi ý ở đây: http://softeng.oicr.on.ca/chang_wang/2017/04/17/Using-AngularJS-components-directives-in-React/?utm_source=reactnl&utm_medium=email

TIP: Đó là dễ dàng hơn nhiều nếu phụ thuộc góc của bạn được quản lý đúng cách.

2
  1. Tôi không biết về bất kỳ thực hành tốt nhất cụ thể, nhưng thời gian gần đây tôi bắt đầu sử dụng ng-Redux (https://github.com/angular-redux/ng-redux) ở góc 1,5 ứng dụng hiện tại của tôi có hiệu quả lớn cho đến nay. Nó được thực sự tốt đẹp để đạt được những lợi ích của dòng dữ liệu uni-directional và quản lý nhà nước có cấu trúc từ Redux trong khi vẫn duy trì lõi Angular. Điều này cũng sẽ cho phép bạn di chuyển dần dần, một mô hình thực thể tại một thời điểm. Mặc dù tôi đã không sử dụng nó bản thân mình, tôi thấy rằng https://github.com/ngReact/ngReact có sẵn để gói React thành phần trong chỉ thị góc. Nếu bạn đang tìm kiếm để cuối cùng có được hoàn toàn bằng cách sử dụng phản ứng redux độc lập, đó có thể là một bước đệm tốt.
  2. Có một số tái cấu trúc cần thiết để tích hợp ng-redux vào các tính năng hiện có, nhưng nếu bạn đã duy trì các mô hình cho dữ liệu của mình bên ngoài bộ điều khiển, nó không quá tệ. Ng-redux cho phép bạn gọi các chức năng của Action Creator trực tiếp từ bộ điều khiển, thường sẽ thay thế các trình xử lý sự kiện UI action.
  3. Bạn có thể dễ dàng thực hiện các cuộc gọi API của mình bằng cách sử dụng Hành động không đồng bộ với thông lượng redux khi sử dụng ng-redux. Bạn chỉ có thể sử dụng các dịch vụ Angular hiện có để yêu cầu API của bạn, và sau đó sử dụng phản hồi để gửi một Action chuẩn để cập nhật trạng thái.
  4. Tôi muốn nói chắc chắn nó đáng giá ít nhất là tích hợp ng-redux để chuẩn hóa luồng dữ liệu của ứng dụng của bạn. Nó sẽ giúp tổ chức dự án của bạn tốt hơn, và có thể cải thiện hiệu suất tùy thuộc vào cách bạn refactor. Lợi ích của ngReact là ít rõ ràng đối với tôi mặc dù, trừ khi bạn đang tìm kiếm để từ từ chuyển đổi các thành phần cho đến khi bạn có thể mương cốt lõi góc hoàn toàn.
+0

Cảm ơn! Đó có thể là một ý tưởng hay nhưng đó là một quá trình di chuyển quá chậm, ít nhất là đối với tôi. Tôi bắt đầu thực hiện một giải pháp tích cực hơn trong đó phản ứng-redux kiểm soát hoàn toàn trên Angular và không phải là cách khác xung quanh. Vẫn chưa hoàn thành dự án nên tôi không thể viết những gì tôi làm được - nhưng tôi đang lên kế hoạch chia sẻ ngay khi hoàn thành. –

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