Подтвердить что ты не робот

Полимерные элементы vs Angular Директивы

Я знаю, что это было задано ранее, особенно здесь.

Тем не менее, ответы кажутся мне довольно абстрактными, и я нахожу, что я очень смущен на практике.

Ответ .vs выглядит следующим образом:

Полимер (и, вернее, Shadow DOM) создает способность не только составлять биты HTML, но и инкапсулировать их. Это принципиально новые возможности и возможности, которые могут быть использованы с любыми другими системы шаблонов или структуры для повышения их мощности.

Что на самом деле не говорит мне столько, насколько я понимаю, директивы angular делают практически то же самое на практике, хотя полимерные элементы могут быть немного более эффективными. Я уверен, что "инкапсуляция" имеет в этом контексте более глубокий смысл, который я не понимаю.

Скажем, я разрабатываю веб-приложение AngularJS. Когда, как и почему я должен использовать полимерные элементы над директивами angular?

Использовать ли полимерные элементы вместо angular директив, если это так, если вы будете использовать один над другим? Или были бы реализованы angular директивы с точки зрения полимерных элементов?

4b9b3361

Ответ 1

Вы действительно задаете две разные вещи: "Каковы различия при реализации/создании компонентов или их использовании?"

Потребляющие компоненты

В обозримом будущем вы используете оба вместе. Неважно, какая технология/библиотека построена на веб-компоненте или что делает поставщик. Просто bower install (или аналогичный) и используйте компоненты, которые имеют смысл для вашего приложения.

Важно то, что все будет DOM, что означает, что элементы будут работать вместе. История взаимодействия очень велика. Здесь POC данных директивы Angular, привязанных к элементу Polymer: http://ebidel.github.io/polymer-experiments/polymer-and-angular/together/


Компоненты здания

Элементы здания - это совсем другая история. Полимерный подход заключается в том, чтобы сосредоточиться вокруг всех веб-компонентов. Angular был создан до появления веб-компонентов, поэтому все немного отличается.

  • Директивы
  • Angular - это способ создания пользовательских тегов/компонентов. Полимер и спецификация пользовательских элементов - это способ, основанный на стандартах.

  • Как вы строите полимерный элемент, является чрезвычайно декларативным. Директивы Angular в основном определяются в JS (с возможностью ссылаться на файл шаблона).

  • Поскольку элементы Polymer с использованием пользовательских элементов, наследование прост. Я не уверен в истории наследования в директивах Angular/

  • Полимерные элементы используют Shadow DOM. Это дает им инкапсуляцию DOM и CSS. Стили, которые вы определяете в своем элементе, не сбрасываются, а стили страниц не сливаются. Я могу ошибаться, но директивы Angular не имеют понятия об инкапсуляции стиля. Это сложная проблема, которую дает спецификация Shadow DOM бесплатно.

  • Концепции связывания данных аналогичны

будут реализованы директивы Angular с точки зрения полимерных элементов

  • В конце концов, Angular примет некоторые из разработанных стандартов веб-компонентов. Это будет верно для всех фреймворков. Эмбер только сделал свои 2014 планы, известные, которые включают веб-компоненты. Например, Angular.dart уже использует Shadow DOM для директив.

  • Полимерные элементы (пользовательские элементы) по умолчанию совместимы с другими настраиваемыми элементами. Это потому, что они просто DOM. Элементы DOM хорошо работают вместе:)

Надеюсь, это поможет!