Vue: v-ifを使用して機能コンポーネントから非機能コンポーネントに交換しても、v-data- *属性は変更されません。

作成日 2020年03月02日  ·  3コメント  ·  ソース: vuejs/vue

バージョン

2.6.11

複製リンク

https://codesandbox.io/embed/heuristic-brown-u7rvw?fontsize=14&hidenavigation=1&theme=dark

再現する手順

チェックボックスをクリックします。

何が期待されますか?

背景色が青色の「BLUEBOX」と表示されているはずです。

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

背景色のない「BLUEBOX」と書いてあります。


この問題は、blue_blockdivがスワップされたときにdata-v- *属性が再設定されないことに起因します。 機能コンポーネントで子divのdata-v- *属性を引き続き使用しています。 したがって、CSSクラスのスタイル設定は適用されません。

https://imgur.com/a/gukDePJ

機能コンポーネントから他のコンポーネントへの交換は便利です。 たとえば、より複雑なコンポーネントに交換する前に、単純なローディングバーコンポーネントを表示する場合。

bug

最も参考になるコメント

これは、Vueが更新中にノードをリサイクルする方法と関係があると思います。 回避策として、コンポーネントとdivの両方にkeyを追加すると、期待される動作が得られます。

全てのコメント3件

これは、Vueが更新中にノードをリサイクルする方法と関係があると思います。 回避策として、コンポーネントとdivの両方にkeyを追加すると、期待される動作が得られます。

https://github.com/vuejs/vue/issues/10416に関連している可能性があり

テスト

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

関連する問題

fergaldoyle picture fergaldoyle  ·  3コメント

bdedardel picture bdedardel  ·  3コメント

aviggngyv picture aviggngyv  ·  3コメント

paulpflug picture paulpflug  ·  3コメント

seemsindie picture seemsindie  ·  3コメント