Vue: Le composant disparaît lors du premier rendu

Créé le 15 août 2017  ·  5Commentaires  ·  Source: vuejs/vue

Version

2.4.2

Lien de reproduction

http://jsfiddle.net/yMv7y/3265/

Étapes à suivre pour reproduire

Sur JSFiddle, attendez que le setTimeout sur L15 se termine après deux secondes.

Qu'attend-on?

Pour que CustomElA soit toujours dans le DOM.

Que se passe-t-il réellement?

CustomElA est supprimé du DOM lors du nouveau rendu. Cependant, il revient sur le troisième re-rendu (testé avec setInterval au lieu de setTimeout sur JSFiddle sur L16).


Le JSfiddle utilise Vue v2.4.0 mais j'ai vérifié le bogue sur la v2.4.2 localement.

bug

Commentaire le plus utile

Cela ressemble à un bug, merci de l'avoir signalé. On dirait qu'il a été introduit dans 2.1.4. Il semble que le problème se produise pendant le patch des vnodes.

edit: ressemble à _isDestroyed est faux à init pendant le patch vnode, ce qui empêche d'appeler mount et disparaît de l'arborescence des nœuds

Tous les 5 commentaires

Cela ressemble à un bug, merci de l'avoir signalé. On dirait qu'il a été introduit dans 2.1.4. Il semble que le problème se produise pendant le patch des vnodes.

edit: ressemble à _isDestroyed est faux à init pendant le patch vnode, ce qui empêche d'appeler mount et disparaît de l'arborescence des nœuds

Ceci est corrigé, mais notez que parce que vous modifiez l'élément enveloppant les emplacements, l'élément est considéré comme "remplacé" et donc tout le contenu de l'emplacement, y compris les composants qu'il contient, sera détruit puis recréé. C'est malheureusement ainsi que fonctionne le correctif vdom et il est peu probable qu'il change.

@ yyx990803
Ça sonne bien, merci. Avez-vous une date approximative pour la prochaine version?

Vous vous demandez également quand la prochaine version aura lieu ou, en attendant, existe-t-il un moyen d'installer cette version? Merci.

@ Tolmark12 clone le npm link pour utiliser la version locale de vue

Cette page vous a été utile?
0 / 5 - 0 notes