Дело не в том, как быстро вы сможете жениться на новой технологии или фреймворке. Важно то, как быстро вы сможете с ним развестись.

Полимер — это веб-компоненты. Но веб-компоненты — это не (просто) полимер. Ваша текущая клиентская среда уже более десяти лет пытается внедрить веб-компоненты. Самая умная информация, которую я могу передать, это. Оставайтесь на уровне спецификации. Я делаю это с любым языком, к которому прикасаюсь. Спецификации платформы были фрагментированы примерно год назад. Мы находимся в Web Components v1, который дает вам почти всю необходимую поддержку браузера, поскольку они представили спецификации, а браузеры их реализуют. Веб-компоненты — это концепция, над которой работают такие компании, как Google, FB (реагирование), Vue, Riot и т. д. (в их соответствующих реализациях)Однако Polymer кажется ближе к спецификациям, чем многие из других, которые часто даже не используют ‹template›. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template

Поддержка браузера

Спецификация версии 1. Реализации:

➡️️ Polyfills webcomponents-lite.js (Уровень, на котором я остаюсь и просто пишу хорошо названные оболочки вокруг вещей, которые я хочу использовать. Например, .fetch()https: //fetch.spec.whatwg.org/

➡️️ Webcomponents.js https://github.com/webcomponents/webcomponentsjs, где я бы начал, если я новичок в концепции, поскольку информация охватывает React/Vue/и т. д. Они просто не реализовали спецификации, потому что их не существовало, когда они начинали. Подробнее об этом позже.

➡️️ Полимер Ничего, кроме готовых компонентов. например Мне нужен компонент скользящего меню. (Подумайте о подключаемых модулях jquery с точки зрения сообщества.).

➡️️ 💔 Действительно фрагментированы Vue.js React, Riot.js, Ember, Turbolinks (Rails) и т. д. Вот почему. Все они являются разрозненными реализациями одного и того же решения. У них есть концепция веб-компонентов, и все они являются отличными экосистемами, однако органы по стандартизации все еще находятся в стадии обсуждения. И правильно, что сообщество придумало свои собственные реализации (вспомните jquery/prototype/underscore). Группа TC39, ответственная за Ecmascript, (все еще) обсуждает импорт модулей (см. http://rollupjs.org для разумного полифилла. Webpack слишком много для моих нужд и кажется, потребуется вечность, чтобы понять. Мне не нужна вся структура для создания моего внешнего кода. Sprockets, я думаю, реализует веб-пакет).

Где vue/react/etc пошли правильно, так это понятие виртуального дома и веб-компонентов. Где они ошиблись, так это в том, что браузер догнал спецификацию. Теперь у них остались реализации, не соответствующие спецификации. Я даже не думаю, что они используют `DocumentFragment`, который ЯВЛЯЕТСЯ виртуальным DOM в вашем браузере прямо сейчас. https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment

Способ, которым платформа может двигаться вперед, чтобы у нас не было войн браузеров, — это наличие органов стандартов для JS и платформы. Они просто сидят без дела, собирая - а ля карт - "Front end frameworks… хорошие части". Потом у них встречи по этому поводу. Затем протолкните функции и сделайте их доступными для браузеров. До них, чтобы реализовать их. (позор вам, Safari для WebRTC). Это то, что нужно сказать, когда ваша «инфраструктура» — не более чем реализация браузера, которая находится в вашем браузере прямо сейчас. например, `document.querySelectorAll` и то, как это способствует упадку jquery.

// мой любимый jQuery :troll: твит. 105 символов. 35 лишних😂😂😂
let $ = selector =› document.querySelectorAll (selector)
$ (`h1`) // [‹h1›]

$.ajax = url =› выборка (url)

Ссылки

Официальный сайт веб-компонентов: https://www.webcomponents.org/

Спецификация MDN: https://developer.mozilla.org/en-US/docs/Web/Web_Components

Самая последняя документация v1: https://developers.google.com/web/fundamentals/getting-started/primers/customelements