Appearance
Mudanças de Rutura
Esta página lista todas as mudanças de rutura da Vue 3 a partir da Vue 2.
Embora pareça que muito tem mudado, muito do que conhecemos e amamos sobre a Vue ainda é o mesmo; mas queríamos ser o mais exaustivos possível e fornecer explicações e exemplos detalhados para cada mudança documentada.
Detalhes
API Global
- A API Global da Vue está alterada para usar uma instância de aplicação
- As APIs internas e globais foram reestruturadas para ser passíveis a agitação da árvore
Diretivos do Modelo de Marcação
- O uso de
v-modelsobre os componentes foi re-trabalhado, substituindo ov-bind.sync - O uso de
keysobre<template v-for>e nós que não sãov-formudou - a precedência de
v-ifev-forquando usada sobre o mesmo elemento mudou v-bind="object"agora é sensível a ordem- O modificador
v-on:event.nativefoi removido
Componentes
- Os componentes funcionais apenas podem ser criados usando uma função simples
- O atributo
functionalsobre o<template>do componente de ficheiro único e a opção de componentefunctionalforam depreciados - Os componentes assíncronos agora exigem que o método
defineAsyncComponentpara serem criados - Os eventos do componente agora devem ser declarados com a opção
emits
Função de Interpretação
- A API da função de interpretação mudou
- A propriedade
$scopedSlotsfoi removida e todas as ranhuras são expostas através de$slotscomo funções $listenersfoi removido / combinado ao$attrs$attrsagora inclui os atributosclassestyle
Elementos Personalizados
- As verificações de elemento personalizado agora são realizadas durante a compilação do modelo de marcação
- O uso do atributo
isespecial está restrito apenas ao marcador<component>reservado
Outras Pequenas Mudanças
- A opção do ciclo de vida
destroyedfoi renomeada paraunmounted - A opção do ciclo de vida
beforeDestroyfoi renomeada parabeforeUnmount - A função de fábrica
defaultdas propriedades não mais tem acesso ao contexto dethis - A API de diretiva personalizada mudou para alinhar com o ciclo de vida do componente e
binding.expressionfoi removida - A opção
datadeve ser sempre declarada como uma função - A opção
datadas misturas agora é combinada superficialmente - A estratégia de coerção de atributos mudou
- Algumas classes de transição foram renomeadas
<TransitionGroup>agora não desenha nenhum elemento envolvente por padrão- Quando observamos um vetor, a função de resposta apenas acionará quando o vetor for substituído. Se precisarmos acionar sobre a mutação, a opção
deepdeve ser especificada - Os marcadores
<template>sem diretivas especiais (v-if/else-if/else,v-for, ouv-slot) agora são tratados como elementos simples e resultarão num elemento<template>nativo ao invés de desenhar o seu conteúdo interno. - A aplicação montada não substitui o elemento em que está montado
- O prefixo de eventos
hook:do ciclo de vida mudou paravnode-
APIs Removidas
- Suporte de
keyCodecomo modificadores dev-on - Os métodos de instância
$on,$offand$once - Filtros
- Os atributos dos modelos de marcação embutidos
- A propriedade de instância
$children - A opção
propsData - Método de instância
$destroy. Os utilizadores não mais gerem manualmente o ciclo de vida dos componentes da Vue individuais. - As funções globais
setedelete, e os métodos de instância$sete$delete. Já não são exigidos com a deteção de mudança baseada em delegação.