Vue Academy · Aula

Modo Vapor do Vue: otimização em tempo de compilação

O modo Vapor remove o DOM virtual; entenda o impacto no desempenho e a compilação opcional.

Aula 1 de 413 etapas

Modo Vapor do Vue: otimização em tempo de compilação é uma aula grátis de Vue Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Vue Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Vue Academy inclui 4 aulas no total.

O que é o Modo Vapor

O Modo Vapor é uma estratégia alternativa de compilação para Vue que remove completamente o DOM virtual. Em vez de comparar árvores de VNode, o compilador gera código que atualiza diretamente os nós reais do DOM. O recurso é opcional e busca grandes ganhos de desempenho e memória.

Como o DOM virtual funciona atualmente

Normalmente, uma função de renderização retorna uma árvore de VNodes. A cada atualização, o Vue cria uma nova árvore e a compara com a anterior para encontrar alterações. Essa comparação tem um custo em tempo de execução e aloca objetos a cada renderização.

// conceptually, each render produces VNodes
function render() {
  return h('div', null, [
    h('span', null, count.value)
  ])
}
// Vue diffs new VNodes vs old to patch the DOM

Vapor: atualizações diretas do DOM

No Modo Vapor, o compilador analisa o modelo em tempo de compilação e gera código que toca apenas nos nós específicos do DOM que podem mudar. Sem árvore de VNode, sem comparação — um efeito reativo grava diretamente no nó.

// conceptual Vapor output
const n0 = document.createElement('span')
// effect updates ONLY the text node when count changes
renderEffect(() => {
  n0.textContent = count.value
})

O mesmo sistema de reatividade

O Vapor mantém a reatividade conhecida do Vue — ref, reactive, computed, watch funcionam todos da mesma forma. O que muda é como as atualizações do DOM são aplicadas, não como você declara o estado reativo.

import { ref, computed } from 'vue'

const count = ref(0)
const doubled = computed(() => count.value * 2)
// identical authoring experience under Vapor

Ativação por componente

O Vapor é ativado por componente, não globalmente. Isso permite migrar gradualmente e combinar componentes Vapor e componentes que não usam Vapor no mesmo aplicativo. Uma convenção comum é usar um marcador em <script setup> / na configuração de compilação.

<script setup vapor>
import { ref } from 'vue'
const count = ref(0)
</script>

<template>
  <button @click="count++">{{ count }}</button>
</template>

Por que é mais rápido

Ao dispensar a criação de nós do DOM virtual e a comparação entre árvores, o Vapor reduz o trabalho da CPU em cada atualização e aloca muito menos objetos, diminuindo a pressão sobre a coleta de lixo. A montagem inicial também gera menos sobrecarga em tempo de execução, reduzindo o consumo de memória.

Ambiente de execução menor

Como os componentes Vapor não precisam do ambiente de execução do DOM virtual, um aplicativo construído inteiramente com Vapor pode distribuir um pacote de ambiente de execução menor. O mecanismo de comparação simplesmente não é incluído.

Análise em tempo de compilação

O poder vem da capacidade de o compilador distinguir as partes estáticas das partes dinâmicas de um modelo. A marcação estática é criada uma única vez; somente as vinculações dinâmicas recebem efeitos reativos. Essa separação entre estático e dinâmico é o que possibilita atualizações diretas.

<template>
  <div class="card">     <!-- static, created once -->
    <h2>{{ title }}</h2>  <!-- dynamic, gets an effect -->
  </div>
</template>

Limitações e interoperabilidade

Durante sua fase experimental, alguns recursos e bibliotecas de terceiros que dependem do DOM virtual (funções de renderização personalizadas e determinadas interfaces do DOM virtual) podem não ter suporte completo em componentes Vapor. A interoperabilidade com componentes comuns é compatível, para que você possa adotá-lo gradualmente.

Relação com Solid/Svelte

O Vapor aproxima o Vue da abordagem orientada à compilação e sem DOM virtual, introduzida pelo Solid e pelo Svelte — reatividade granular impulsionando mutações diretas no DOM — enquanto mantém a API e o ecossistema do Vue.

Quando usar o Vapor

Considere o Vapor para interfaces críticas em termos de desempenho e com muitas atualizações (listas grandes, painéis e animações) quando ele estiver estável. Para aplicativos comuns, o ambiente de execução padrão já é rápido; adote o Vapor seletivamente onde a análise de desempenho mostrar benefícios.

Verificação rápida

Teste sua compreensão do Modo Vapor.

Recapitulação

Você aprendeu sobre o Modo Vapor:

  • Remove a comparação do DOM virtual; o compilador gera código de atualização direta do DOM
  • O mesmo sistema de reatividade — ref, reactive, computed permanecem inalterados
  • Ativação por componente, permitindo adoção gradual e interoperabilidade
  • A análise estática/dinâmica em tempo de compilação permite atualizações granulares
  • São esperados ganhos significativos de desempenho, memória e tamanho do ambiente de execução
Grátis para começar

Aprenda HTML com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
42
Aulas
156

Perguntas Frequentes

A aula “Modo Vapor do Vue: otimização em tempo de compilação” é grátis?

Sim — o texto completo de “Modo Vapor do Vue: otimização em tempo de compilação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Vue Academy, atualize para CoddyKit PRO. O curso de Vue Academy inclui 4 aulas no total.

O que vou aprender em “Modo Vapor do Vue: otimização em tempo de compilação”?

O modo Vapor remove o DOM virtual; entenda o impacto no desempenho e a compilação opcional. Você pratica Vue Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Vue Academy?

Nenhuma experiência prévia é necessária. Vue Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Modo Vapor do Vue: otimização em tempo de compilação”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Vue Academy?

Sim. Cada aula de Vue Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Modo Vapor do Vue: otimização em tempo de compilação
  2. Ecossistema Vite: plugins e ferramentas
  3. Macros do Vue e propostas da comunidade
  4. Escolha da stack Vue adequada para 2025+
← Voltar para Vue Academy