Bạn không phải là người đầu tiên đặt câu hỏi này :) Hãy để tôi làm rõ một vài điều trước khi nhận được câu hỏi của bạn.
Polymer của webcomponents.js
là một thư viện chứa nhiều polyfills cho API W3C khác nhau mà rơi dưới sự bảo trợ Web Components. Đó là:
- Yếu tố tùy chỉnh
- Nhập khẩu HTML
<template>
- Bóng DOM
- Sự kiện con trỏ
- khác
Điều hướng bên trái trong tài liệu ( polymer-project.org ) có một trang cho tất cả các "Công nghệ nền tảng" này. Mỗi trang trong số đó cũng có một con trỏ tới polyfill riêng lẻ.
<link rel="import" href="x-foo.html">
là một nhập HTML. Nhập khẩu là một công cụ hữu ích để bao gồm HTML trong các HTML khác. Bạn có thể bao gồm <script>
, <link>
đánh dấu hoặc bất cứ điều gì khác trong một lần nhập.
Không có gì "liên kết" <x-foo>
đến x-foo.html. Trong ví dụ của bạn, nó giả định định nghĩa Thành phần tùy chỉnh của <x-foo>
(ví dụ <element name="x-foo">
) được xác định trong x-foo.html. Khi trình duyệt thấy định nghĩa đó, nó đã được đăng ký như là một yếu tố mới.
Về câu hỏi!
Sự khác biệt giữa Angular và polymer là gì?
Chúng tôi đã đề cập đến một số điều này trong video Q & A của chúng tôi . Nói chung, Polymer là một thư viện nhằm mục đích sử dụng (và chỉ ra cách sử dụng) Các thành phần Web. Nền tảng của nó là các yếu tố tùy chỉnh (ví dụ: mọi thứ bạn xây dựng là một thành phần web) và nó phát triển khi web phát triển. Cuối cùng, chúng tôi chỉ hỗ trợ phiên bản mới nhất của các trình duyệt hiện đại.
Tôi sẽ sử dụng hình ảnh này để mô tả toàn bộ chồng kiến trúc của Polymer:
Lớp ĐỎ: Chúng tôi có được web của ngày mai thông qua một tập hợp các polyfill. Hãy nhớ rằng, các thư viện đó sẽ biến mất theo thời gian khi các trình duyệt áp dụng API mới.
Lớp VÀNG: Rắc một ít đường bằng polymer.js. Lớp này là ý kiến của chúng tôi về cách sử dụng các API cụ thể cùng nhau. Nó cũng bổ sung những thứ như liên kết dữ liệu, đường tổng hợp, người theo dõi thay đổi, thuộc tính được công bố ... Chúng tôi nghĩ rằng những điều này hữu ích để xây dựng các ứng dụng dựa trên thành phần web.
XANH: Tập hợp toàn diện các thành phần UI (lớp màu xanh lá cây) vẫn đang được tiến hành. Đây sẽ là các thành phần web sử dụng tất cả các lớp màu đỏ + vàng.
Chỉ thị góc so với các yếu tố tùy chỉnh?
Xem câu trả lời của Alex Russell . Về cơ bản, Shadow DOM cho phép soạn các bit của HTML nhưng cũng là một công cụ để đóng gói HTML đó. Đây về cơ bản là một khái niệm mới trên web và một số khung công tác khác sẽ tận dụng.
Polyme giải quyết vấn đề gì mà AngularJS không có hoặc không có?
Điểm tương đồng: mẫu khai báo, ràng buộc dữ liệu.
Sự khác biệt: Angular có API cấp cao cho các dịch vụ, bộ lọc, hình động, v.v., hỗ trợ IE8 và tại thời điểm này, là một khung mạnh mẽ hơn nhiều để xây dựng các ứng dụng sản xuất. Polyme chỉ mới bắt đầu trong alpha.
Có kế hoạch nào để gắn polymer với AngularJS trong tương lai không?
Chúng là những dự án riêng biệt . Điều đó nói rằng, cả hai nhóm Angular và Ember đều tuyên bố cuối cùng họ sẽ chuyển sang sử dụng các API nền tảng cơ bản trong các khung riêng của họ.
^ Đây là một IMO thắng lớn. Trong một thế giới nơi các nhà phát triển web có các công cụ mạnh mẽ (Shadow DOM, Custom Elements), các tác giả khung cũng có thể sử dụng các nguyên thủy này để tạo ra các khung tốt hơn. Hầu hết trong số họ hiện đang trải qua những vòng quay tuyệt vời để "hoàn thành công việc".
CẬP NHẬT:
Có một bài viết thực sự tuyệt vời về chủ đề này: " Đây là sự khác biệt giữa Polyme và Angular "