Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web Components além do Polymer (beyond Polymer)

Web Components além do Polymer (beyond Polymer)

Luiz Augusto

January 31, 2015
Tweet

More Decks by Luiz Augusto

Other Decks in Programming

Transcript

  1. !==

  2. <body>          <my-­‐element></my-­‐element>        

     <my-­‐element></my-­‐element>          <my-­‐element></my-­‐element>   </body> Custom Elements var  MyElementPrototype  =  Object.create(HTMLElement.prototype);   var  MyElement  =  document.registerElement('my-­‐element',  {          prototype:  MyElementPrototype   });   var  element  =  document.createElement('my-­‐element');   var  anotherElement  =  new  MyElement();   document.body.appendChild(element);   document.body.appendChild(anotherElement);
  3. Custom Elements var  MyElementPrototype  =  Object.create(HTMLElement.prototype);   MyElementPrototype.createdCallback  =  function()

     {};   MyElementPrototype.attachedCallback  =  function()  {};   MyElementPrototype.detachedCallback  =  function()  {};   MyElementPrototype.attributeChangedCallback  =  function(attribute,  oldVal,  newVal)  {};   var  MyElement  =  document.registerElement('my-­‐element',  {          prototype:  MyElementPrototype   });
  4. Shadow DOM var  MyElementPrototype  =  Object.create(HTMLElement.prototype);   MyElementPrototype.createdCallback  =  function()

     {          this.innerHTML  =  '<p>Oi  galera  do  GDG.</p>';   };   var  MyElement  =  document.registerElement('my-­‐element',  {          prototype:  MyElementPrototype   }); <body>          <my-­‐element></my-­‐element>   </body> index.html <body>          <my-­‐element>                  <p>Oi  galera  do  GDG.</p>          </my-­‐element>   </body>
  5. Shadow DOM <body>          <my-­‐element>    

                 #shadow-­‐root                          <p>Oi  galera  do  GDG.</p>          </my-­‐element>   </body> <body>          <my-­‐element></my-­‐element>   </body> index.html var  MyElementPrototype  =  Object.create(HTMLElement.prototype);   MyElementPrototype.createdCallback  =  function()  {          var  shadow  =  this.createShadowRoot();          shadow.innerHTML  =  '<p>Oi  galera  do  GDG.</p>';   };   var  MyElement  =  document.registerElement('my-­‐element',  {          prototype:  MyElementPrototype   });
  6. Templates <template  id="template">          <p>Oi  galera  do

     GDG.</p>   </template> var  MyElementPrototype  =  Object.create(HTMLElement.prototype);   MyElementPrototype.createdCallback  =  function()  {          var  shadow  =  this.createShadowRoot();          var  template  =  document.querySelector('template');          var  clone  =  document.importNode(template.content,  true);          shadow.appendChild(clone);   };   var  MyElement  =  document.registerElement('my-­‐element',  {          prototype:  MyElementPrototype   });