Sự khác biệt giữa Angular.js và Angular.dart? [đóng cửa]


75

Tôi biết một chút về Angular.js, nhưng tôi muốn tự học Dart và Angular.dart ngay bây giờ. Tuy nhiên, tôi hơi tò mò về sự khác biệt giữa cả hai. Hướng dẫn Angular.dart đặc biệt nói rằng nó sẽ không so sánh hai . Có ai đã sử dụng cả hai có một quan điểm về sự khác biệt là gì?


3
Đúng ... và một người lớn hơn và trưởng thành hơn hai người kia, nhưng tôi đã nghĩ đến những khác biệt ít rõ ràng hơn.
CorayThan

Câu trả lời:


95

Cập nhật # 2 (16/08/2016) Phiên bản Dart của Angular hiện được duy trì bởi nhóm Dart trên Github: dart / angle2 trên github

Cập nhật : Dự án AngularDart đã bị phá hủy và đã được thay thế bởi Angular2. Angular2 là phiên bản lặp lại gần đây nhất của Angular và hoạt động trong Dart.

Câu trả lời gốc bên dưới so sánh AngularDart và AngularJS 1.x.

AngularDart và AngularJS đều được duy trì bởi nhóm Angular. Chúng tôi đã lấy rất nhiều kiến ​​thức từ phía JS và áp dụng nó cho Dart. Chúng tôi cũng đã lấy rất nhiều mã và chuyển thẳng đến thế giới Dart.

Ở cấp độ kỹ thuật, cốt lõi của Angular:

  • Ngôn ngữ diễn đạt tương thích giữa hai phiên bản. Trình phân tích cú pháp AngularDart bắt đầu như một cổng trực tiếp từ JS nhưng đã tự phát triển. Một sự khác biệt lớn ở đó là trình phân tích cú pháp Dart hỗ trợ nhiều phụ trợ, bao gồm cả trình tạo mã Dart.

  • Hệ thống DI thì khác. Trong Dart, nó dựa trên lớp trong đó trong Javascript, nó dựa trên biểu tượng.

  • Trình biên dịch đã được viết lại hoàn toàn trong phiên bản Dart. Điều này có nghĩa là các chỉ thị hoạt động khác nhau và bây giờ có sự phân biệt giữa "chỉ thị cấu trúc" sửa đổi DOM, "chỉ thị trang trí" và các thành phần.

  • ng-transclude đã "tan chảy vào trình duyệt", được thay thế bằng DOM bóng tiêu chuẩn.

  • bộ điều khiển chỉ thị đã được hợp nhất thành các thành phần

  • các chỉ thị trong AngularDart được khai báo với một lớp có chú thích. các hàm liên kết / biên dịch được thay thế bằng một hàm áp dụng

  • Trong AngularDart, phạm vi được tiêu hóa tự động thông qua các vùng Dart, loại bỏ nhu cầu khỏi phạm vi. $ Áp dụng.

  • AngularDart có một khái niệm về bản đồ thuộc tính mà nó vẫn chưa quay trở lại AngularJS. Điều này có nghĩa là các chỉ thị cần ít phạm vi hơn. $ Đồng hồ hoặc thậm chí phụ thuộc vào Phạm vi.

Có thể có những khác biệt khác, nhưng đó là một danh sách tốt để bạn bắt đầu.


2
Bất kỳ ý tưởng khi nó sẽ ở trạng thái có thể sử dụng được? Thậm chí một số chức năng cơ bản bị thiếu ngay bây giờ có vẻ như đang và rất phấn khởi để bắt đầu sử dụng Dart :(
Salman von Abbas

@SalmanPK AngularDart có thể sử dụng được. Bạn còn thiếu những tính năng nào?
James deBoer


Hỗ trợ cơ bản cho cả hai đã có sẵn. Chúng tôi vẫn đang làm việc trên một vài tính năng bổ sung (ví dụ: xác thực).
James deBoer

7
một điểm khác biệt rõ ràng sẽ là khả năng tương thích của trình duyệt - angle.js nói rằng "Safari, Chrome, Firefox, Opera, IE8, IE9 và các trình duyệt di động (Android, Chrome Mobile, iOS Safari)" trong khi không có tuyên bố nào như vậy cho angle.dart (haven ' t tìm thấy bất cứ điều gì trên trang web của họ) - bản thân phi tiêu nhắm mục tiêu ECMAScript 5 (> = IE9), nhưng angle.dart sử dụng Shadow DOM và polyfill của polymer cho nó - và mục tiêu duy nhất của polymer là các trình duyệt "thường xanh", thậm chí không đề cập đến các trình duyệt di động. Có ai biết nếu đây là một quan sát chính xác?
herbert

17

Vì vậy, sự khác biệt đầu tiên là khá rõ ràng: AngularJSđược viết bằng JavaScript trong khi Angular.dartđược viết bằng phi tiêu.

Mặc dù Angular.darttuân theo các nguyên tắc cốt lõi của AngularJSnó, nó dường như là một sân chơi cho các tính năng mới phát triển. Tôi đoán nhóm cốt lõi tiếp thu tất cả những gì học được từ AngularJS và cố gắng triển khai mọi thứ tốt hơn một chút cho Angular.dartphiên bản. Hiện tại, có vẻ như một loạt thứ được triển khai lần đầu tiên trong phiên bản phi tiêu của Angular trước khi chúng được báo cáo lại AngularJS. Ví dụ, họ vừa thêm một phiên bản nhẹ hơn ng-repeatmà cuối cùng sẽ có AngularJS.

Ngoài ra, nhóm Angular gần đây đã chia sẻ một số thông tin chi tiết về những gì được lên kế hoạch cho Angular 2.0. Tôi cá rằng hầu hết những thứ đó sẽ hạ cánh đầu tiên Angular.darttrước khi chúng hạ cánh AngularJS.


1
Tuyên bố này từ một quan điểm rất cao. Tôi biết rằng câu hỏi này có thể không hoàn toàn phù hợp với SO nhưng không có nhiều tài liệu cho Angular.dart. Vì vậy, tôi hy vọng có thêm một chút thông tin quan trọng như - đánh dấu khác nhau ở đâu (điều này không phụ thuộc nhiều vào cú pháp ngôn ngữ (ít nhất là các cấu trúc phổ biến nhất để có được ý tưởng). - cấu trúc đánh dấu nào có sẵn trong một không có trong khác IMHO rằng cả hai sản phẩm có liên quan và được phát triển bởi hai nhóm mà nói chuyện với nhau là một chút mỏng..
Günter Zöchbauer

Để sao lưu điểm về 'sân chơi' - stackoverflow.com/a/21055757/3966682
d4nyll

15

Cập nhật tháng 01/2018

Xem thêm Sự khác biệt giữa Angular 2 TS và Angular 2 Dart là gì?

Cập nhật 08/2016

Angular 2 cho JS và Dart hiện là các dự án độc lập và sẽ khác nhau ở một mức độ nào đó.

Ví dụ NgModule giới thiệu trong TS RC.5 có thể sẽ không hạ cánh trong Dart và mô-đun bộ định tuyến cũng có thể sẽ không được dịch trực tiếp. Đây là những thay đổi cần thiết trong TS để tải chậm. Dart có một câu chuyện tải lười biếng dễ dàng hơn và không cần nhiều thay đổi được giới thiệu trong Angular2 cho TS.

Cập nhật

Với Angular 2, hầu như không có sự khác biệt nào nữa vì Angular.dart và Angular.js được tạo tự động từ cùng một nguồn TypeScript. http://techcrunch.com/2015/03/05/microsoft-and-google-collaborate-on-typescript-hell-has-not-frozen-over-yet/

Nguyên

Bài viết này liệt kê một số điểm khác biệt: ANGULARDART CHO CÁC NHÀ PHÁT TRIỂN ANGULARJS. GIỚI THIỆU VỀ ANGULAR TỐT NHẤT YET.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.