我正在開發一個帶有呈現 D3 圖表的組件的 Vue3 應用程式。當我導航到另一個頁面并回傳到相同的 D3 組件但具有不同的資料時,就會出現問題。D3 圖表不斷相互疊加。我正在使用 Vue3,發現禁用組件快取有點困難,但也許我錯過了一些選項。我不介意完全禁用快取,因為大部分資料都是從 localStorage 獲得的,所以很快
這是一個沙箱來說明問題:
https://codesandbox.io/s/vue-3-vuex-4-vue-router-forked-eem3ui?file=/src/components/Miserables.vue
如果您單擊“悲慘世界”鏈接,然后單擊另一個鏈接(播放器串列或關于)并回傳悲慘世界,您會看到堆疊的圖表。
uj5u.com熱心網友回復:
您的代碼中至少有 2 種“氣味”:
<script>每次掛載Miserables組件時,您都在創建和注入標簽- 多次掛載后,您將有大量重復的 JavaScript 代碼,可能會污染全域命名空間(多次),甚至更糟 - 可能會附加多個事件處理程式或設定計時器;- 在每次安裝時,您都在創建一個新的 SVG 并將其附加到 BODY 上——因此頁面上出現多個 SVG 并不是 Vue 的錯;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/480694.html
