Vue: problema de transição externa com componentes assíncronos

Criado em 26 mai. 2017  ·  17Comentários  ·  Fonte: vuejs/vue

Versão

2.3.0

Link de reprodução

https://jsfiddle.net/z11fe07p/1959/

Passos para reproduzir

O que é esperado?

O componente anterior (A) deve desaparecer antes que o componente B apareça

O que realmente está acontecendo?

Os componentes A e B são visíveis simultaneamente


Este comportamento ocorre apenas quando o componente B ainda não está carregado. Da próxima vez que você mudar de A para B, está tudo bem.

bug

Comentários muito úteis

Eu resolvi, espere um minuto ...

Ao renderizar async components , precisamos usar um marcador de posição de elemento oculto

Todos 17 comentários

Obrigado, parece um bug. Obrigado pela reprodução concisa e clara

Parece que o componente assíncrono é renderizado muito cedo

Eu resolvi, espere um minuto ...

Ao renderizar async components , precisamos usar um marcador de posição de elemento oculto

Tem certeza de que isso resolve as transições de componentes assíncronos? Eu sou novo no Vue, então é provável que seja um bug em meu código, mas meu repositório abaixo ainda exibe o bug de transição de saída em que o componente de entrada não espera a conclusão do fade de saída. Observe que estou usando o http-vue-loader nomeado acima.

Demonstração de bug de transição de componente assíncrono

Na verdade, ainda está falhando com a mesma reprodução. A transição começa imediatamente como @clingor disse

@posva

https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.js

Parece que esta versão não contém o código de correção

A correção ainda não foi lançada. Fechamos os problemas quando o patch foi parar no branch dev , mas pode não estar em um lançamento público ainda.

2.3.4 contém apenas uma única correção para um vazamento de memória (que tem maior prioridade)

Que pena, acabei de ver que o commit foi antes do lançamento e achei estranho. Estaria nas notas de lançamento de qualquer maneira

Desculpe pelo mal-entendido e obrigado por confirmar o problema!

Isso não parece ter sido corrigido ainda no 2.4.2. O lançamento ainda está pendente?

Demonstração de bug de transição de componente assíncrono

@clingor Tem certeza? O jsfiddle funciona bem

O fiddle funciona corretamente, mas o código no meu repositório GitHub de exemplo ainda exibe o mesmo comportamento. Pode ser a biblioteca auxiliar http-vue-loader ou talvez algo no meu código. Este exemplo é simples e foi criado para demonstrar o problema .

@FranckFreiburger alguma dessas alterações do VueJS exigiria uma atualização do http-vue-loader ?

se você colocar o problema em um jsfiddle sem o carregador, posso dar uma olhada

Am 21.07.2017 21:16 schrieb "Chris Lingor" [email protected] :

Isso não parece ter sido corrigido ainda no 2.4.2. Isso ainda está pendente
lançamento?

Demonstração de bug de transição de componente assíncrono
https://github.com/clingor/githubIssuesFileShare/tree/master/vue-async-component-bug

-
Você está recebendo isto porque está inscrito neste tópico.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/vuejs/vue/issues/5760#issuecomment-317088909 ou mudo
o segmento
https://github.com/notifications/unsubscribe-auth/Aclno69wDoTlZziST6eSocqxEnn8mFx-ks5sQPkKgaJpZM4Nng7j
.

O culpado é <keep-alive> !

Passos para reproduzir

  1. consulte https://jsfiddle.net/z11fe07p/2382/
  2. clique no botão "B"

@posva , você consegue se reproduzir?

@FranckFreiburger Você deveria abrir uma nova edição para isso. Obrigado BTW 😉

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

lmnsg picture lmnsg  ·  3Comentários

bdedardel picture bdedardel  ·  3Comentários

hiendv picture hiendv  ·  3Comentários

gkiely picture gkiely  ·  3Comentários

fergaldoyle picture fergaldoyle  ·  3Comentários