Sau 3 tháng tranh luận và nghiên cứu trong việc lựa chọn giữa React (với Redux) và Angular 2, nhóm front-end trong công ty của tôi đã kết luận sẽ đi với Angular 2 (cho rằng nó phù hợp hơn với vấn đề của chúng tôi).
Chúng tôi đang kinh doanh ứng dụng doanh nghiệp, hiện đang bao gồm nhiều công nghệ mặt trước khác nhau (trong khi có toàn bộ RESTful phụ trợ) và chúng tôi muốn thay thế tất cả và có một công nghệ duy nhất để giúp đào tạo và kiểm soát chất lượng trong tương lai dễ dàng hơn.
Với bản chất của sản phẩm của chúng tôi, nó rất rộng lớn và có các mô-đun bên trong, bản thân nó là một miền khác nhau và có thể được tạo thành một ứng dụng độc lập nhưng bản thân sản phẩm chỉ tồn tại trong một URL.
Thí dụ;
Hãy gọi sản phẩm của tôi là SuperApp.
Là một giao diện người dùng, SuperApp có hệ thống đăng nhập tiêu chuẩn và điều hướng đến các mô đun con / sản phẩm con, sao cho quy trình làm việc xuất hiện như sau.
Siêu ứng dụng
- Xác thực người dùng
- Quên mật khẩu
- Trang công khai có thể truy cập mà không cần xác thực
Người dùng đã được chứng thực
Hệ thống định vị
- Trang Chủ
- Sản phẩm phụ1
- Sản phẩm phụ2
- Sản phẩm phụ3
Hồ sơ
...
...
Các nhóm
...
...
- Trang Chủ
Lưu ý rằng trong đại diện ở trên, Sub-product1
và Sub-product2
là hai lĩnh vực hoàn toàn khác nhau, có các lĩnh vực kinh doanh hoàn toàn khác nhau.
Điều tôi có thể nghĩ ngay bây giờ là tôi có thể tạo SuperApp như một dự án Angular 2 duy nhất chỉ có các thành phần và chế độ xem phù hợp với chính nó và SuperApp cũng chịu trách nhiệm tải lên nhiều ứng dụng con; Sub-product1
, Sub-product2
(một lần nữa, các dự án Angular 2 khác nhau, có cấu hình riêng package.json
, webpack
cấu hình, v.v.) thông qua các thành phần câm và hoạt động như một vỏ cung cấp định tuyến cấp cao nhất và giữ chỗ để giữ các ứng dụng con đó.
Khi Sub-product1
được tải trong hệ vỏ, nó sẽ nối các tuyến riêng của nó với tuyến hiện tại mà SuperApp đã hạ cánh.
Lý do tôi muốn tách biệt là vì các ứng dụng khác nhau (hiện đang được xây dựng bằng ExtJS) có các nhóm chuyên dụng làm việc với nó (chúng tôi là một công ty có hơn 500 nhà phát triển), vì vậy nếu họ có các dự án Angular của riêng mình, họ có thể quản lý công cụ của họ và phụ thuộc vào ý thích của họ mà không cần dựa vào ứng dụng cha mẹ lớn.
Nhưng tôi không thể tìm thấy bất cứ nơi nào trong các tài liệu Angular chính thức hoặc trên web rằng liệu có ứng dụng Angular lồng nhau hay không (theo cách mà mã khung được chia sẻ trong khi các phụ thuộc của ứng dụng con hoàn toàn bị cô lập và chỉ được tải khi ứng dụng cần nó), hoặc liệu có cách tiếp cận thay thế nào để giải quyết vấn đề như vậy không.
Bất kỳ hướng dẫn hoặc thậm chí liên kết đến bất kỳ bài viết có liên quan sẽ được đánh giá cao.