2.5.17
https://codesandbox.io/s/4k43rylw0
再生装置をロードし、メモリヒープのスナップショットを作成します。 ヒープを検索すると、4つのVueComponents(App、Container、Child、Async Child)が見つかります。
[破棄]ボタンをクリックします。 これにより、v-ifが切り替わり、子コンポーネントが削除され、AsyncChildコンポーネントも削除されます。
子コンポーネントを破棄した後、コンポーネントとその非同期にロードされた子コンポーネントを破棄し、メモリを解放する必要があります。
Vueは、これらのコンポーネントがガベージコレクションされるのを防いでいるコンテキスト参照を保持しています
これは、次の場所にあるresolve-async-componentロジックが原因で発生しています: https :
64行目のforceRender関数で、$ forceUpdateを呼び出した後、コンテキスト配列をクリアしてこれらの参照を解放し、コンポーネントを後でガベージコレクションできるようにする必要があります。
この問題の修正についてもPRを提出できます。ありがとうございます。
ここに提出されたPR: https :
こんにちは@LinusBorg
この問題にいくつかのラベルを追加したようです。 参照されたプルリクエストのレビュープロセスを開始するために他に必要なことはありますか?
ありがとう!
最も参考になるコメント
この問題の修正についてもPRを提出できます。ありがとうございます。