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クラスのスタイル設定は適用されません。
機能コンポーネントから他のコンポーネントへの交換は便利です。 たとえば、より複雑なコンポーネントに交換する前に、単純なローディングバーコンポーネントを表示する場合。
これは、Vueが更新中にノードをリサイクルする方法と関係があると思います。 回避策として、コンポーネントとdivの両方にkey
を追加すると、期待される動作が得られます。
https://github.com/vuejs/vue/issues/10416に関連している可能性があり
テスト
最も参考になるコメント
これは、Vueが更新中にノードをリサイクルする方法と関係があると思います。 回避策として、コンポーネントとdivの両方に
key
を追加すると、期待される動作が得られます。