LitElement не совместим с полимерными элементами

Polymer 3 и LitElement выглядят очень привлекательно для будущей компонентной разработки, и я с нетерпением жду возможности использовать их в своих проектах.

Но один из камней преткновения заключается в том, что старая кодовая база Polymer с большим количеством готовых к использованию элементов, кажется, не полностью совместима с LitElement и будущими Web-компонентами Material.

Например, поведение iron-overlay из paper-dialog не может обеспечить перехват фокуса, если какой-либо из родительских элементов реализован с помощью базы LitElement. Я знаю, что эта проблема, вероятно, вызвана в основном реализацией iron-ovelay-поведения, но основной вопрос остается прежним.

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

1 ответ

Мы начали наш проект в конце прошлого года, используя Polymer, и в течение последних 4 или 5 месяцев постепенно двигались в направлении "Лит-Элемент". Хотя, как вы описали, есть некоторые икоты, но они довольно совместимы. Например, мы создали ряд входных данных, которые простираются от бумажного ввода, но наши формы представляют собой смесь Polymer и LitElement.

По моему мнению, я бы, вероятно, рекомендовал придерживаться LitElement и пытаться создавать свои собственные компоненты, когда это возможно. Вы не можете делать это всегда, но это работает много времени.

Да, вот что это значит - несмотря на то, что оба наследуются от HTMLElement, PolymerElement и LitElement несовместимы.

Одним из простых примеров этой базовой несовместимости является выбор Polymer {{two-way}} а также [[one-way]] привязка данных, по сравнению с единственным предложением LitElement ${one-way}, В некоторых случаях может быть очень просто преобразовать одно в другое, но это не обязательно так, и, вероятно, будет еще меньше двигаться вперед, поскольку LitElement теперь по существу заменил PolymerElement в Polymer 3.0.

Я бы порекомендовал вам развернуть свои собственные новые компоненты на основе LitElement- и рассмотреть возможность их публикации на webcomponents.org, чтобы другие могли получить выгоду от ваших готовых к использованию элементов, так же, как вы надеялись со старой базой кода Polymer. ( обратите внимание на руководство по документации для компонентов Polymer)

Другие вопросы по тегам