Сравнение между полимером и x-tag и ванилью js

Кто-нибудь может дать мне некоторое представление о разнице между полимером,x-tag и vanilla js?

Я использовал полимер в своем проекте, но я хочу сравнить полимер,x-tag и vanilla js.

2 ответа

Веб-компоненты - это встроенная реализация в браузерах. Polymer - это библиотека, которая действует как очень тонкий слой поверх технологий веб-компонентов. X-Tag - это еще одна библиотека, которая еще тоньше, поскольку использует только одну из четырех технологий веб-компонентов.

Я написал статью об этом: http://pascalprecht.github.io/2014/07/21/polymer-vs-x-tag-here-is-the-difference/

VanillaJS означает только использование веб-компонентов без какой-либо инфраструктуры / оболочки в чистом JS.

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

И то и другое x-tag а также Polymer обеспечить удобную и продуманную оболочку вокруг веб-компонентов, которые значительно сокращают шаблонный код.

ИМХО Polymer библиотека обеспечивает наиболее сложный подход (в отношении привязки данных, определения шаблонов и т. д.)

Вот как это выглядит с x-tag:

xtag.register('x-accordion', {
  // extend existing elements
  extends: 'div',
  lifecycle:{
    created: function(){
      // fired once at the time a component
      // is initially created or parsed
    },
    inserted: function(){
      // fired each time a component
      // is inserted into the DOM
    },
    removed: function(){
      // fired each time an element
      // is removed from DOM
    },
    attributeChanged: function(){
      // fired when attributes are set
    }
  },
  events: {
    'click:delegate(x-toggler)': function(){
      // activate a clicked toggler
    }
  },
  accessors: {
    'togglers': {
      get: function(){
        // return all toggler children
      },
      set: function(value){
        // set the toggler children
      }
    }
  },
  methods: {
    nextToggler: function(){
      // activate the next toggler
    },
    previousToggler: function(){
      // activate the previous toggler
    }
  }
});

Вот как это будет выглядеть с Polymer:

<polymer-element name="polymer-accordion" extends="div" on-click="{{toggle}}">
  <template>
    <!-- shadow DOM here -->
  </template>
  <script>
    Polymer('polymer-accordion' {
        created: function() { ... },
        ready: function() { ... },
        attached: function () { ... },
        domReady: function() { ... },
        detached: function() { ... },
        attributeChanged: function(attrName, oldVal, newVal) {
        },
        toggle : function() {....},
        get togglers() {},
        set togglers(value) {},
        nextToggler : function() {},
        previousToggler : function() {},
   });
  </script>
</polymer-element>
Другие вопросы по тегам