Vue: コンポーネントは最初の再レンダリングで消えます

作成日 2017年08月15日  ·  5コメント  ·  ソース: vuejs/vue

バージョン

2.4.2

複製リンク

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

再現する手順

JSFiddleで、L15のsetTimeoutが2秒後に完了するのを待ちます。

何が期待されますか?

CustomElAがまだDOMにあるため。

実際に何が起こっているのですか?

CustomElAは、再レンダリング時にDOMから削除されます。 ただし、3回目の再レンダリングで戻ります(L16のJSFiddleでsetTimeout代わりにsetIntervalを使用してテストされています)。


JSfiddleはVuev2.4.0を使用していますが、v2.4.2のバグをローカルで確認しました。

bug

最も参考になるコメント

バグのようです。報告していただきありがとうございます。 2.1.4で導入されたようです。 ただし、vnodeのパッチ中に問題が発生するようです。

編集:vnodeパッチ中のinit _isDestroyedがfalseのように見えるため、mountを呼び出さず、ノードツリーから消えます

全てのコメント5件

バグのようです。報告していただきありがとうございます。 2.1.4で導入されたようです。 ただし、vnodeのパッチ中に問題が発生するようです。

編集:vnodeパッチ中のinit _isDestroyedがfalseのように見えるため、mountを呼び出さず、ノードツリーから消えます

これは修正されていますが、スロットをラップする要素を変更しているため、要素は「置き換えられた」と見なされ、その中のコンポーネントを含むすべてのスロットコンテンツが破棄されてから再作成されることに注意してください。 残念ながら、これはvdomパッチの仕組みであり、変更される可能性はほとんどありません。

@ yyx990803
よかった、ありがとう。 次のリリースの球場の日付はありますか?

また、次のリリースがいつ行われるのか、またはその間にこのバージョンをインストールする方法はありますか? ありがとう。

@ Tolmark12リポジトリのクローンを作成し、ファイルをビルドしてnpm linkを実行し、ローカルバージョンのvueを使用します😉(これらは非常に大まかな手順です)

このページは役に立ちましたか?
0 / 5 - 0 評価