Aprenda na prática como funcionam os frameworks JavaScript modernos construindo um
(nolanlawson.com)Entendendo como funcionam os frameworks JavaScript modernos
- Criar seu próprio framework JavaScript ajuda no aprendizado.
- "Frameworks JavaScript modernos" aqui se refere aos frameworks posteriores ao React.
- Esses frameworks foram inspirados pelo React, mas evoluíram em direções parecidas.
Características dos frameworks modernos
- Uso de reatividade para atualizar o DOM.
- Uso de clonagem de templates para renderizar o DOM.
- Uso de APIs web modernas como
<template>eProxy.
Reatividade
- Costuma-se dizer que o React não é reativo.
- Frameworks modernos usam um modelo reativo baseado em push, priorizando desempenho.
- Com
Proxy, é possível implementar atualizações do DOM sempre que o estado muda.
Clonagem da árvore DOM
- Usar a tag
<template>para fazer o parse do HTML uma vez e depois clonar tudo rapidamente é uma técnica eficiente. - Esse método é usado em vários frameworks JavaScript.
APIs JavaScript modernas
<template>eProxysão APIs que ajudam a construir um sistema de reatividade.- Tagged template literals são usadas para simplificar a API de templates HTML.
Etapas para construir a reatividade
- A base do framework é a reatividade, que define o gerenciamento de estado e a atualização do DOM quando o estado muda.
- Usa-se
Proxypara detectar mudanças de estado equeueMicrotaskpara gerenciar as atualizações com eficiência.
Etapas de renderização do DOM
- A função
htmlé usada para construir a árvore DOM e atualizá-la com eficiência. - Tagged template literals são usadas para escrever templates HTML, e
WeakMapé usado para otimizar o parse do HTML.
Combinando reatividade e renderização do DOM
createEffecté usado para atualizar o DOM de acordo com o estado.- A implementação permite que o texto seja atualizado automaticamente quando o estado muda.
Próximos passos
- Há várias formas de melhorar o sistema de renderização do DOM.
- O objetivo é fazer o parse do template apenas uma vez e configurar os bindings apenas uma vez para minimizar as atualizações.
Opinião do GN⁺
O ponto mais importante deste texto é entender os conceitos centrais e a forma de implementação dos frameworks JavaScript modernos, além do processo de aprendizado por meio da experiência de construir de fato seu próprio framework. Essa abordagem pode proporcionar a engenheiros de software iniciantes uma oportunidade interessante e útil de entender o funcionamento interno dos frameworks e colocá-lo em prática.
1 comentários
Comentário no Hacker News
Recomendação dos seguintes materiais para uma compreensão básica do tema de interesse:
Esclarecimentos sobre equívocos a respeito do React e sobre como ele realmente funciona:
useMemonão evita rerenderização; quem cumpre esse papel éReact.memo.Avaliação positiva do Svelte e casos de uso:
Diferentes perspectivas sobre frameworks reativos:
Perguntas e debate sobre a reatividade do React:
Pergunta dirigida a pessoas com ampla experiência em frameworks frontend: