O DOM_LAB é um projeto interativo desenvolvido como material de apoio para uma aula invertida sobre Manipulação de DOM com JavaScript para a disciplina de Web. Desenvolvido por estudantes do 4º período de Engenharia de Software do IFPE Campus Belo Jardim, o projeto demonstra o ciclo completo de manipulação do Document Object Model (Criar, Ler, Atualizar e Deletar).
Para tornar a apresentação mais imersiva, a aplicação inicia em um visual limpo e claro (White Mode) e, através da manipulação de propriedades dinâmicas, transforma-se em uma estética dark retro-minimalista (Tech-Noir), evidenciando o poder do JavaScript na alteração de classes e variáveis CSS.
- Alternância Dinâmica de Tema: Manipulação de
classListe variáveis CSS para transição instantânea de layout sem recarregar a página. - Injeção de Elementos: Criação de nós (
Nodes) complexos na memória e inserção no DOM de forma otimizada. - Remoção Interativa: Exclusão de elementos gerados dinamicamente utilizando Event Delegation e DOM Traversing.
- Prevenção de XSS: Uso rigoroso de
textContentem detrimento deinnerHTMLpara demonstrar boas práticas de segurança na modificação de conteúdo.
- Fundamentos da Árvore DOM: Diferença entre BOM e DOM, e compreensão do Critical Rendering Path.
- Seletores e Rastreadores: Análise de performance entre
getElementByIdvsquerySelector, e distinção entre Live Collections (HTMLCollection) e Static Collections (NodeList). - Modificadores e Atributos: Manipulação segura de texto e gerenciamento de
data-attributes. - Estética Dinâmica: Arquitetura limpa para manipulação de CSS via JS, evitando estilos inline.
- Construtores e Otimização: Técnicas de
createElemente discussões sobre Reflow e Repaint. - Arquitetura de Eventos: Compreensão de Event Bubbling, interceptação de ações com
preventDefault, navegação pela árvore (closest()) e o padrão de Delegação de Eventos.
Como este projeto utiliza apenas tecnologias nativas do navegador (Vanilla JS, HTML e CSS), não há necessidade de instalação de pacotes ou servidores complexos.
- Clone este repositório:
git clone https://github.com/omeIets/Lab_Dom.git