Polymer.js' quirks

28 Jan 2018

For some time, I've been using Polymer.js extensively. I want to write about its quirks. Some of them are deal-breakers for shipping a site to production. Here they are:

The three states of if-else conditions

TBD

Neither external CSS nor CSS preprocessor are supported

https://github.com/Polymer/polymer/issues/3628

Shadow DOM, WebComponents, and HTML imports aren't well-supported in other browsers

TBD

The build tool doesn't support minification

https://github.com/Polymer/polymer-bundler/issues/55

Conclusion

At this point, I'd recommend Vue.js over Polymer.js. Vue.js isn't stuck with Web components or HTML imports or Shadow DOM. The tooling works as we expect it to work (e.g. CSS/JS/HTML minification).

Single File Components in Vue.js corresponds to Polymer.js' component. I've converted many Polymer.js' components to Vue.js' ones. There seems to be no issue.

One annoyance is the warning “Avoid mutating prop” in Vue.js; it's annoying but hardly a deal-breaker.