0Pricing
Vue Academy · Aula

Por que usar a Composition API?

Limitações da Options API, problema da reutilização de lógica e vantagens da Composition API.

Por que usar a Composition API? é 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.

As duas formas de escrever em Vue

O Vue 3 oferece dois estilos para escrever a lógica de componentes: a API de Opções e a API de Composição. Ambas produzem o mesmo resultado final, mas organizam o código de maneiras muito diferentes.

Entender as vantagens e desvantagens ajuda você a escolher a ferramenta certa e a ler bases de código existentes com confiança.

Como a API de Opções organiza o código

A API de Opções divide um componente em seções fixas: data, computed, methods, watch e ganchos do ciclo de vida. Cada parte de um recurso fica em uma seção diferente.

Para um único recurso pequeno, talvez você precise acessar quatro blocos separados do arquivo.

export default {
  data() {
    return { count: 0 }
  },
  computed: {
    doubled() { return this.count * 2 }
  },
  methods: {
    increment() { this.count++ }
  }
}

O problema: as responsabilidades ficam espalhadas

À medida que um componente cresce, a lógica de uma única responsabilidade (por exemplo, uma caixa de pesquisa) fica espalhada por data, methods, computed e watch. Você precisa rolar constantemente para cima e para baixo para acompanhar um único recurso.

Isso é chamado de problema da fragmentação.

API de Composição: agrupe por recurso

A API de Composição permite colocar todo o código de uma responsabilidade lógica junto. O estado reativo, os valores derivados e as funções que os alteram ficam lado a lado.

Você lê de cima para baixo e vê um recurso completo em um só lugar.

import { ref, computed } from 'vue'

export default {
  setup() {
    const count = ref(0)
    const doubled = computed(() => count.value * 2)
    function increment() { count.value++ }
    return { count, doubled, increment }
  }
}

Comparação lado a lado

Observe como o segundo exemplo mantém count, seu valor derivado doubled e increment juntos. Na API de Opções, essas mesmas três partes ficavam em três seções separadas.

  • API de Opções: organizada por tipo de opção
  • API de Composição: organizada por responsabilidade lógica

Reutilizando lógica: mixins (a maneira antiga)

Antes da API de Composição, a principal ferramenta de reutilização eram os mixins. Um mixin mescla suas opções em um componente.

Mas os mixins apresentam problemas reais: conflitos de nomes, origens pouco claras das propriedades e dependências implícitas entre mixins.

const counterMixin = {
  data() { return { count: 0 } },
  methods: { increment() { this.count++ } }
}

export default {
  mixins: [counterMixin]
  // Where did count come from? Not obvious.
}

Reutilizando lógica: composables (a maneira nova)

Um composable é simplesmente uma função que usa APIs de reatividade e retorna estado reativo. Você o chama como qualquer função, portanto a origem de cada valor fica explícita.

Sem mesclagem mágica e sem conflitos de nomes ocultos.

import { ref } from 'vue'

export function useCounter() {
  const count = ref(0)
  function increment() { count.value++ }
  return { count, increment }
}

Usando um composable

Importar e chamar o composable deixa claro que count e increment vêm de useCounter. Você pode até renomeá-los ao desestruturá-los para evitar conflitos.

import { useCounter } from './useCounter'

export default {
  setup() {
    const { count, increment } = useCounter()
    return { count, increment }
  }
}

Por que os composables são melhores que os mixins

  • Origens explícitas — cada valor vem de uma chamada de função visível.
  • Sem conflitos de nomes — desestruture e renomeie livremente.
  • Componível — um composable pode chamar outro.
  • Compatível com tipos — o TypeScript infere automaticamente os tipos retornados.

Melhores recursos para TypeScript e ferramentas

Como a API de Composição é construída com funções e variáveis comuns, o TypeScript pode inferir os tipos sem ferramentas especiais. Não há um this com um tipo escrito manualmente para manter, e os editores oferecem preenchimento automático preciso.

Quando usar cada uma

A API de Composição se destaca em componentes médios e grandes e em qualquer lógica que você queira reutilizar. A API de Opções continua sendo perfeitamente válida e pode ser fácil de ler em componentes pequenos.

Códigos novos em Vue 3 geralmente favorecem a API de Composição, especialmente com <script setup>, que você conhecerá em breve.

Verificação rápida

Teste o que aprendeu sobre a razão de existir da API de Composição.

Recapitulação

Nesta lição, você aprendeu:

  • A API de Opções organiza o código por tipo de opção, o que espalha um recurso entre várias seções.
  • A API de Composição agrupa o código por responsabilidade lógica.
  • Os mixins reutilizam lógica, mas causam conflitos de nomes e ocultam as origens.
  • Os composables são funções comuns que retornam estado reativo — explícitas, sem conflitos e componíveis.

Perguntas Frequentes

A aula “Por que usar a Composition API?” é grátis?

Sim — o texto completo de “Por que usar a Composition API?” é 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 “Por que usar a Composition API?”?

Limitações da Options API, problema da reutilização de lógica e vantagens da Composition API. 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 “Por que usar a Composition API?”?

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. Por que usar a Composition API?
  2. Função setup() e variáveis reativas
  3. ref versus reactive: quando usar cada um
  4. Computed e Watch na Composition API
← Voltar para Vue Academy