VanJS – Uma framework sem JSX baseada em JavaScript puro
Uma nova biblioteca de UI em JavaScript, VanJS, promete interfaces reativas em menos de 1 KB usando funções simples em vez de JSX ou de uma etapa de build, o que gera comparações com React, Preact, Solid, Mithril e outras frameworks “mínimas”. Os comentários debatem se a otimização extrema do tamanho do bundle ainda importa com redes modernas, mas muitos argumentam que menos ferramentas, execução mais rápida em dispositivos de baixa potência e modelos mentais mais simples são vantagens reais. O fio também revela uma fadiga mais ampla com a reinvenção constante dos stacks de front-end, além de interesse genuíno em reatividade baseada em sinais, interoperabilidade e abordagens que se afastam do virtual DOM e de pipelines de build pesados.
Recepção Geral & Objetivo
- Muitos veem VanJS como mais uma entrada numa longa linha de bibliotecas minimalistas de “JavaScript reativo puro”, semelhantes a Xeact, Hyperapp, Arrow, Mithril, etc.
- Alguns são céticos em relação a mais uma framework, mas outros argumentam que a experimentação é valiosa e que foi assim que as principais frameworks de hoje surgiram.
- Vários apreciam o fato de ela ser pequena, conceitualmente simples e fácil de bifurcar ou estender.
Tamanho, Desempenho e Custos de Rede
- Forte foco no tamanho abaixo de 1 KB; alguns argumentam que o tamanho da framework é irrelevante em comparação com imagens/fontes e que ela será cacheada de qualquer forma.
- Outros respondem que o tamanho do JS ainda importa, especialmente para dispositivos mais modestos e planos de dados limitados, e que o custo de execução, não apenas os bytes, afeta a UX.
- Os próprios benchmarks do VanJS são citados para afirmar que ele supera o React ao atualizar localmente sem um virtual DOM.
- Um subfio observa que adicionar até pequenas conveniências (por exemplo, constantes de SVG/MathML) é deliberadamente evitado para manter os bytes baixos; alguns elogiam isso, outros veem como sobre-otimização.
Sem JSX, Sintaxe de Visualização Baseada em Funções
- Um tema importante é a ausência de JSX:
- Fãs de JSX veem sua ausência como uma desvantagem; preferem tags aninhadas, semelhantes a HTML, pela legibilidade e clareza estrutural.
- Opositores consideram JSX uma muleta histórica, um desajuste sintático que exige uma etapa de build, e argumentam que chamadas de função em JS puro são mais limpas e evitam ferramentas extras.
- Alguns observam que o React pode ser usado sem JSX e que a sintaxe do VanJS acaba sendo semelhante ao React sem JSX.
- Há debates prolongados comparando a legibilidade de chamadas de função aninhadas com árvores XML/HTML, sem consenso claro.
Reatividade, Estado e Ciclo de Vida
- VanJS usa objetos simples “state.val” (semelhantes a sinais). Alguns acham isso intuitivo e conciso; outros acham a formulação “val deve ser imutável, mas é definido via um setter” confusa à primeira vista.
- Surgem perguntas sobre recursos ausentes: hooks de ciclo de vida (onMount/onCleanup), stores e construções de controle de nível mais alto como For/Index/Show.
- O carregamento assíncrono de dados é discutido; VanJS suporta uma abstração no estilo Await e atualizações de estado, mas os padrões idiomáticos não ficam imediatamente óbvios a partir dos exemplos da página inicial.
Reflexões Mais Amplas & Alternativas
- Alguns preferem continuar com ferramentas existentes (React, Preact, Solid, Svelte) ou migrar para htmx/LiveView e linguagens não-JS via WASM ou compile-to-JS.
- Um tema recorrente é o “círculo das frameworks”: ferramentas mínimas acumulam recursos, tornam-se complexas e inspiram uma nova onda de substitutas pequenas como o VanJS.