Vue.js: Introdução ao Vue.js

Última atualização: 2026-08-26

O Vue.js é um framework JavaScript progressivo para a criação de interfaces de usuário — ele permite desenvolver com eficiência aplicativos web usando uma abordagem declarativa e baseada em componentes, desde formulários simples até SPAs complexas de nível empresarial.

Este tutorial foi elaborado para iniciantes com conhecimentos básicos de HTML, CSS e JavaScript. Ele começa com os conceitos fundamentais do Vue 3 e avança até que você consiga desenvolver, de forma independente, um sistema de back-end de comércio eletrônico completo e de médio porte. A curva de aprendizado difere daquela do W3Schools e do Newbie Tutorial — adotamos uma abordagem Vue 3 + Composition API em primeiro lugar, utilizando um projeto real de comércio eletrônico (um backend SaaS com 5.000 lojistas e 30.000 SKUs) como exercício prático.

1. O que você vai aprender


2. A história da escolha da tecnologia front-end por uma equipe de SaaS

(1) Desafio: Cinco estruturas — qual você deve escolher?

Em uma empresa de SaaS em rápido crescimento, com 200.000 linhas de código de front-end, a líder técnica Alice se depara com uma decisão difícil no primeiro trimestre de 2026:

O gerente de produto Charlie aumenta a pressão:

“Temos 30.000 SKUs em nosso painel de administração. A filtragem leva 8 segundos no aplicativo React atual. Os novos desenvolvedores levam 3 semanas para lançar seu primeiro recurso. Precisamos melhorar esses dois aspectos em 5 vezes — até o terceiro trimestre de 2026.”

(2) A solução no Vue 3

Após 4 semanas de avaliação, Alice escolheu o Vue 3. Eis o motivo:

TEXT 📖 Somente leitura
Bundle size:     850KB → 280KB    (-67%)
Initial load:    3.2s  → 0.9s    (-72%)
Onboarding time: 3 weeks → 1 week (-67%)
Job market:      growing 35% YoY

A natureza “progressiva” do Vue significa que Alice pode adotá-lo de forma gradual:

  1. Semana 1: Substituir 1 página pelo Vue 3 (tag de script do CDN, sem etapa de compilação)
  2. Semana 4: Migrar 10 páginas para componentes de arquivo único
  3. Semana 12: SPA completo com Router + Pinia
  4. Semana 24: 200.000 linhas migradas, sem tempo de inatividade

(3) Receita

Após 6 meses trabalhando com o Vue 3, a equipe avaliou:


3. O que é o Vue?

O Vue (pronuncia-se /vjuː/, semelhante a “view”) é um framework JavaScript progressivo para a criação de interfaces de usuário. Foi criado por Evan You em 2014 e atualmente é mantido pela equipe principal do Vue.js e pela comunidade global.

(1) Definições básicas + Diagrama da arquitetura do Vue 3

100%
graph TB
    subgraph Vue3Ecology
        V[Vue 3 Core<br/>@vue/runtime-core]
        R[Vue Router 4<br/>Route Management]
        P[Pinia<br/>State Management]
        S[SSR/SSG<br/>Nuxt 3]
        T[Vite<br/>Build Tools]
        U[UI Component Library<br/>Element Plus/Naive UI]
    end
    
    V --> R
    V --> P
    V --> S
    T --> V
    U --> V
    
    style V fill:#42b883,color:#fff
    style R fill:#35495e,color:#fff
    style P fill:#ffd02f
    style S fill:#00dc82
    style T fill:#646cff,color:#fff

(2) Cinco características principais

Característica Significado Comparação
Frameworks progressivos Podem ser adotados conforme a necessidade, variando de bibliotecas leves a frameworks completos O React requer JSX; o Angular oferece um conjunto completo de ferramentas
Dados reativos A interface do usuário é atualizada automaticamente à medida que os dados mudam, sem a necessidade de manipular manualmente o DOM O jQuery exige manipulação manual $(sel).text()
Baseada em componentes Interface do usuário dividida em componentes independentes e reutilizáveis; Componentes de Arquivo Único (SFC) As tags HTML não são reutilizáveis; os componentes podem ser combinados
Renderização declarativa Descreve “como deve ficar”, em vez de “como fazer com que fique assim” Manipulação imperativa do DOM
Curva de aprendizado suave Conhecimentos básicos de HTML/CSS/JS são tudo o que você precisa para começar; o TS pode ser aprendido aos poucos Para o Angular, você precisará aprender primeiro sobre decoradores e injeção de dependências

(3) Casos de uso do Vue

Cenário Adequação Descrição
SPA de pequeno e médio porte (Comércio eletrônico/CRM/Administração) ⭐⭐⭐⭐⭐ Caso de uso ideal, uso convencional do Vue
Aplicativos corporativos ⭐⭐⭐⭐ Requer Nuxt 3 + arquitetura de microfront-end
H5 para celular ⭐⭐⭐⭐ uni-app / framework Vant
Aplicativo para desktop ⭐⭐⭐ Electron + Vue (Solução moderada)
Blog estático ⭐⭐ Astro / Nuxt: o conteúdo se encaixa melhor
Widget incorporado ⭐⭐⭐⭐⭐ Tamanho de arquivo extremamente pequeno, carregado diretamente do CDN

4. Vue 3 x Vue 2: Principais diferenças

(1) Visão geral das principais melhorias

Dimensão Vue 2 Vue 3 Impacto
Sistemas reativos Object.defineProperty Proxy Melhoria no desempenho, compatível com matrizes/Maps/Sets
Estilo da API Focado na API de opções Prioriza a API de composição Reutilização mais flexível da lógica
TypeScript Requer configuração manual Suporte de primeira classe Inferência de tipos ↑
Tamanho do pacote ~33 KB ~20 KB (compactado com gzip) Carregar ↑
Velocidade de renderização 1x 1,2–2x Desempenho ↑
Tree-shaking Não compatível Totalmente compatível O código não utilizado não é incluído
Fragmento Nós de raiz única Nós de raízes múltiplas Modelos mais flexíveis
Teletransporte Nenhum Integrado Implementação simplificada em modal/drawer
Suspense Nenhum Integrado Gerenciamento elegante de componentes assíncronos

(2) Por que o Vue 3 é recomendado?

TEXT 📖 Somente leitura
✅ Vue 3 is the current major version (2020-09 Published, 2026 Stable 5+ years)
✅ Vue 2 As of 2023-12 EOL(End of Life),No longer maintained
✅ 90% New Project、100% The new ecosystem tools are all based on Vue 3
✅ Composition API is the Modern Writing Style Recommended by the Vue Team
✅ TypeScript Significant Improvement in Support,Team Code Quality ↑

❌ Vue 2 This is only necessary when maintaining legacy projects.
❌ Not studying Vue 3 = Missed Vue Ecology 95% Modern tools

5. API de composição x API de opções

(1) Comparação entre dois estilos de API

Aspecto API de Opções API de Composição
Estilo de redação seções de dados / métodos / cálculos setup() Coleção de funções
Reutilização de lógica mixins (não recomendado) Composables (recomendado)
Inferência de tipos Geral Excelente (projetada especificamente para o TS)
Organização do código Agrupado por tipo de opção Agrupado por lógica de negócios
Curva de aprendizado Suave (ideal para iniciantes) Um pouco íngreme (requer compreensão de ref/reactive)
Adequado para Pequeno a médio Médio a grande (recomendado para todos os tamanhos)

(2) Exemplos da API de opções

JS
// Options API - Group by option
export default {
  data() {
    return { count: 0, name: 'Alice' }
  },
  computed: {
    doubleCount() {
      return this.count * 2
    }
  },
  methods: {
    increment() {
      this.count++
    }
  },
  mounted() {
    console.log('Component mounted')
  }
}
▶ Experimente

(3) Exemplo da API de composição

JS
// Composition API - Logical Blocking
import { ref, computed, onMounted } from 'vue'

export default {
  setup() {
    const count = ref(0)
    const name = ref('Alice')
    
    const doubleCount = computed(() => count.value * 2)
    
    function increment() {
      count.value++
    }
    
    onMounted(() => {
      console.log('Component mounted')
    })
    
    return { count, name, doubleCount, increment }
  }
}
▶ Experimente

(4) Qual devo escolher?

Sugestões Cenários
Use a API de Composição em novos projetos A opção preferida para projetos do Vue 3
Manutenção de projetos legados Preservação da API de opções (sem comprometer o código existente)
Muitos novos membros na equipe A API de Composição é, na verdade, mais fácil de aprender (sem a confusão com “this”)
Lógica de negócios complexa API de composição (organiza o código por lógica de negócios para maior clareza)

6. O ecossistema do Vue 3

O Vue 3 não é apenas um framework, mas um ecossistema completo de desenvolvimento front-end.

(1) Diagrama dos componentes do ecossistema

100%
graph LR
    subgraph Core
        V[Vue 3 Core]
    end
    
    subgraph Official Recommendation
        R[Vue Router 4]
        P[Pinia]
        T[Vite]
    end
    
    subgraph Community Ecosystem
        E[Element Plus]
        N[Naive UI]
        U[UnoCSS]
        I[Vue I18n]
    end
    
    V --> R
    V --> P
    V --> T
    V --> E
    V --> N
    V --> U
    V --> I
    
    style V fill:#42b883,color:#fff

(2) Tabela de referência rápida das principais ferramentas

Ferramentas Funções É preciso aprender? Site oficial
Vue 3 Core O próprio framework ✅ Imprescindível vuejs.org
Vite Ferramenta de compilação, 5 vezes mais rápida ✅ Imperdível vitejs.dev
Vue Router 4 Gerenciamento de roteamento (essencial para SPAs) ✅ Imprescindível router.vuejs.org
Pinia Gerenciamento de estado (alternativa ao Vuex) ✅ Imprescindível pinia.vuejs.org
Element Plus Biblioteca de interface do usuário para desktop Opcional element-plus.org
Naive UI Biblioteca de interface do usuário para desktop Opcional naiveui.com
Vue I18n Internacionalização Opcional vue-i18n.intlify.dev
Nuxt 3 Framework SSR/SSG Opcional nuxt.com
VueUse Biblioteca prática de componentes Opcional vueuse.org

(3) Percurso de aprendizagem abrangente

TEXT 📖 Somente leitura
Stage 1(This Tutorial Phase 1-3):Vue 3 Core + Composition API
Stage 2 (This Tutorial Phase 4): Vue Router + Pinia + Advanced API
Stage 3(This Tutorial Phase 5):Vite + Real Projects + Deployment
Advanced (Recommended Next Steps): Nuxt 3 SSR / Vitest Test / Performance Optimization

7. Exemplo completo: Seu primeiro aplicativo Vue 3

▶ Exemplo: Olá, contador do Vue 3 (SFC — Componente de Arquivo Único)

HTML 📖 Somente leitura
<!-- App.vue - First Vue 3 Applications -->
<template>
  <div class="hello-vue">
    <h1>{{ greeting }}</h1>
    <p>You clicked the button <strong>{{ count }}</strong> times.</p>
    <button @click="increment">Click me</button>
    <p class="author">By {{ author }}, {{ currentYear }}</p>
  </div>
</template>

<script setup>
// Composition API + <script setup> Syntax sugar
import { ref, computed } from 'vue'

const count = ref(0)
const author = ref('Alice')

// Computed Properties:Automatic Dependency Tracking
const currentYear = computed(() => new Date().getFullYear())
const greeting = computed(() => `Hello Vue 3! Welcome, ${author.value}!`)

// Methods
function increment() {
  count.value++
}
</script>

<style scoped>
.hello-vue {
  text-align: center;
  padding: 2rem;
  font-family: system-ui, sans-serif;
}
button {
  background: #42b883;
  color: white;
  border: none;
  padding: 0.5rem 1.5rem;
  border-radius: 4px;
  cursor: pointer;
  font-size: 1rem;
}
button:hover {
  background: #35495e;
}
.author {
  color: #666;
  font-size: 0.9rem;
  margin-top: 2rem;
}
</style>
42 linhas de lógica (limite de 40, somente leitura)

Saída (após clicar no botão):

TEXT 📖 Somente leitura
Hello Vue 3! Welcome, Alice!

You clicked the button 5 times.

[Click me]

By Alice, 2026

▶ Exemplo: Como integrar uma CDN (pronto para uso em 5 linhas de HTML)

HTML
<!DOCTYPE html>
<html>
<head><title>Vue 3 Hello</title></head>
<body>
  <div id="app">
    <h1>{{ message }}</h1>
    <button @click="count++">Clicked {{ count }} times</button>
  </div>
  
  <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
  <script>
    const { createApp, ref } = Vue
    createApp({
      setup() {
        return {
          message: ref('Hello Vue 3!'),
          count: ref(0)
        }
      }
    }).mount('#app')
  </script>
</body>
</html>
▶ Experimente

Resultado: Abra o arquivo HTML; a página exibe “Olá, Vue 3!” e um botão. Ao clicar no botão, o número aumenta em 1.

▶ Exemplo: “Hello World” é executado com sucesso em 5 minutos

BASH
# 1. Create a Project(Use create-vue Official Scaffolding)
npm create vue@latest my-vue-app
# Select: TypeScript? No, JSX? No, Router? No, Pinia? No, Vitest? No, E2E? No
cd my-vue-app
npm install

# 2. Start the development server
npm run dev
# → Local: http://localhost:5173/

# 3. Open in a browser,See Vue Default Welcome Page

▶ Exemplo: Gráfico de acompanhamento do progresso (5 minutos/30 minutos/1 hora)

Fase Prazo Critérios de conclusão
Faça o “Hello World” funcionar 5 minutos Veja a página padrão do Vue no seu navegador
Alterar 1 linha de código 10 minutos Alterar o valor da variável App.vue para message
Adicionar 1 ponto de dados responsivo 20 minutos Adicionar a variável ref + exibição do modelo
Adicionar 1 interação 30 minutos Adicionar evento @click + contador
Implantar no Vercel 1 hora URL pública acessível

▶ Exemplo: 5 erros comuns (evite-os em 5 minutos)

Armadilhas Sintomas Soluções
“Esquecer” .value count++ não funciona “ref” requer count.value++ em JS
Descompactação automática do modelo .value não é necessário no modelo {{ count }} é suficiente
Resposta do objeto perdida obj.name = 'x' Não está respondendo Envolver com reactive()
Atribuição direta de matriz arr[0] = 'x' não responde Use splice ou push
Perda assíncrona de dados Atribuições com setTimeout não respondem Tratado internamente pelo ref/reactive

❓ Perguntas Frequentes

P: O que devo escolher, Vue 3 ou React? R: Escolha aquele com o qual você consiga se dedicar até dominá-lo. Ambos são capazes de lidar com 95% das tarefas. O Vue tem uma curva de aprendizado mais suave e uma sintaxe de modelos mais próxima do HTML; iniciantes podem se familiarizar com ele em duas semanas. O React possui um ecossistema maior, mas você precisará se acostumar com o modelo mental do JSX. Em termos de perspectivas de emprego, há alta demanda por ambos.

P: Preciso aprender TypeScript para usar o Vue 3? R: Não, não é necessário. O Vue 3 oferece suporte total ao JavaScript puro. No entanto, se você planeja trabalhar em projetos de nível empresarial, recomendamos fortemente que aprenda TypeScript — o uso do TypeScript com a API de Composição do Vue 3 é considerado uma prática recomendada, e a inferência de tipos pode reduzir os bugs em 50%.

P: A API de Composição do Vue 3 é difícil de aprender? R: É um pouco mais difícil do que a API de Opções (já que é preciso entender conceitos como refs e reatividade), mas é mais poderosa depois que você a domina. Recomendo começar com a API de Opções para aprender o básico e, em seguida, passar para a API de Composição para levar suas habilidades a um novo patamar.

P: O Vue 3 é adequado para o desenvolvimento de aplicativos móveis? R: Ele pode ser usado para H5 (com a estrutura uni-app), mas, para aplicativos nativos, ainda recomendamos o Flutter ou o React Native. O ponto forte do Vue 3 está na web (desktop e H5); os dispositivos móveis são uma opção secundária.

P: Conseguirei encontrar um emprego na área de Vue depois de concluir este tutorial? R: Sim. Este tutorial aborda o Vue 3 + Router + Pinia + Element Plus + Vite + TypeScript, que atendem aos requisitos de 90% das vagas de emprego relacionadas ao Vue. Você poderá adquirir a experiência em projetos e aprender a resolver problemas de algoritmos no próprio trabalho.

P: Os projetos do Vue 2 ainda podem ser mantidos? R: Eles podem ser mantidos, mas não receberão mais atualizações. O Vue 2 chegou ao fim de sua vida útil (EOL) em dezembro de 2023; todos os novos projetos devem usar o Vue 3. Se você estiver mantendo um projeto existente, recomendamos planejar uma migração para o Vue 3.

P: Quais empresas conhecidas utilizam o Vue 3? R: GitLab, Nintendo, Adobe Behance, Alibaba (em parte), Xiaomi (em parte), BMW, NASA e outras. A participação de mercado do Vue continua a crescer na China, no Sudeste Asiático e na Europa.


📖 Resumo


📝 Exercícios

  1. Questões básicas (Dificuldade: ⭐)

    Acesse a documentação oficial em vuejs.org, liste os três principais recursos do Vue 3 e explique cada um deles em uma frase.

  2. Problemas avançados (Dificuldade: ⭐⭐)

    Compare o Vue 3 e o React 18 nos seguintes aspectos (usando uma tabela):

    Dimensão Visualização 3 React 18
    Tamanho do pacote ? ?
    Curva de Aprendizagem ? ?
    Biblioteca de Gerenciamento de Estados ? ?
    Biblioteca de roteamento ? ?
    Participação no mercado interno ? ?
  3. Problema desafiador (Dificuldade: ⭐⭐⭐)

    Pesquise três projetos reais ao seu redor (sua própria empresa, a empresa de um amigo ou um projeto de código aberto) e faça anotações:

    1. Qual framework de front-end você usou?
    2. Por que escolher essa estrutura?
    3. Qual seria o custo de migrar para o Vue 3?

    Escreva um relatório de pesquisa com 300 caracteres e publique-o na seção de comentários.

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%