No internet connection
  1. Home
  2. Dúvidas Gerais

Como funciona a Componentização Vídeo

Por MARCUS VOGADO @MarcusVogado
    2023-12-13 12:20:30.517Z

    Falaaaa galeraaa, então fiz um vídeo para tentar explicar oque eu aprendi sobre componentização.
    É o segundo vídeo que eu gravo pessoal, estou tentando melhorar essa técnica de gravar vídeos, que parece ser simples, mas é bem complicada kkkk.
    Espero que o vídeo tire algumas dúvidas, e venha somar no conhecimento de vocês.
    Vou deixar todo o código aqui para vocês também.

    Arquivo JavaScript

    class ClassCard extends HTMLElement {
        constructor() {
            super()
            const documentShadow = this.attachShadow({ mode: 'open' })
            const style = document.createElement('style')
            documentShadow.innerHTML = `
                                      <div class="container">
                                           <div class="container__content-img">
                                               <img class="content-img" src="assets/img/Sem título.png" alt="logo ímã">
                                           </div>
                                           <div class="container__content-description">
                                                <p><span> 13/12</span>, <span>19h </span></p>
                                               <h3>${this.getAttribute('title') || 'Titilo padrão'}</h3>
                                                <p>${this.getAttribute('description')}</p>
                                           </div>
                                     </div>
                                `
            style.textContent = `
    /*Card-Component*/
    *{
        padding:0;
        margin:0;
        box-sizing:borde-box;
    } 
    
    .container {                
        font-family: sans-serif;
        border: 1px solid #ccc;
        border-radius: 10px;
    }
    
    .container__content-img {
        width: 100%;
    }
    
    .content-img {
        width: 100%;
        border-radius: 10px 10px 0px 0px;
    }
    
    .container__content-description {
        display: flex;
        flex-direction: column;
        padding: 10px;
        gap:10px                
    }
    `
            documentShadow.appendChild(style)
    
        }
    }
    customElements.define('class-card', ClassCard)
    

    Arquivo HTML

    <!DOCTYPE html>
    <html lang="pt-BR">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Criando Componentes</title>
        <link rel="stylesheet" href="assets/css/style.css"> 
        <script src="assets/components/class-card.js" defer></script>  
    </head>
    
    <body>
       <class-card title="Aula de componentização" description="Entendendo como funciona a componentização"></class-card>   
    </body>
    
    </html>
    
    • 10 respostas
    1. Julio @Julio
        2023-12-13 14:57:10.324Z2023-12-13 15:49:30.359Z

        Ótimo material, achei bem interessante por você ter mostrado como é feito na forma pura em JS.

        Única coisa que seria válido de adicionar, é observar que o Angular, Vue, React, entre outros, faz todo esse trabalho por de baixo dos panos, o que facilita muito a vida do desenvolvedor, abstraindo muitos conceitos. Vale ressaltar que nem todos usam a shadow DOM, React por exemplo utiliza virtual DOM, mas é o mesmo conceito.

        1. G
          Em resposta aMarcusVogado:

          Parabéns @MarcusVogado pelo post, vou só deixar aqui um material extra sobre esse tipo de estrutura e sobre o customElements, que é uma API nativa do Browser para esse tipo de personalização, de um site que é meu favorito quando o assunto é JavaScript: https://javascript.info/custom-elements

          1. Em resposta aMarcusVogado:

            Que massa! Eu nunca tinha visto componentes na prática, com HTML/JS puro, muito interessante! Obrigado @MarcusVogado!

            1. Em resposta aMarcusVogado:

              ficou top esse video parabéns marcus , foi de grande ajuda nos estudos

              1. Em resposta aMarcusVogado:
                Luiza Ferreira @luizaferreirafonseca
                  2023-12-14 18:50:06.119Z

                  Adorei! Obrigada pela ótima explicação, Marcus!

                  1. P
                    Em resposta aMarcusVogado:
                    Pétrus Teixeira @Petrus_Goncalves
                      2023-12-14 21:56:23.810Z

                      Excelente aula Marcus, esclareceu demais.

                      1. B
                        Em resposta aMarcusVogado:

                        Show, obrigada por compartilhar Marcus!!

                        1. Em resposta aMarcusVogado:

                          Ficou demais!!! Bem legal ver esse funcionamento.

                          1. T
                            Em resposta aMarcusVogado:
                            Tatiane Tinoco @tatianetinoco
                              2023-12-23 02:40:33.728Z

                              Uau .... Adorei a ideia do vídeo. Muito bom de acompanhar a explicação.

                              1. Em resposta aMarcusVogado:
                                Nadielly Medeiros @Nadielly
                                  2024-01-04 12:53:31.364Z

                                  Parabéns Marcus, ficou muito boa a explicação. Assim muitos podem ver na prática como funciona