Сравнение между полимером и 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>