perf: optimize infinite list loading

This commit is contained in:
jxxghp
2026-05-15 22:59:00 +08:00
parent 00d37d7bda
commit 2a6f9e3cc0
10 changed files with 298 additions and 360 deletions

View File

@@ -13,6 +13,7 @@ import PluginMixedSortCard from '@/components/cards/PluginMixedSortCard.vue'
import ProgressiveCardGrid from '@/components/misc/ProgressiveCardGrid.vue'
import { usePWA } from '@/composables/usePWA'
import { useDynamicHeaderTab } from '@/composables/useDynamicHeaderTab'
import type { InfiniteScrollDone } from '@/composables/usePaginatedInfiniteScroll'
// 国际化
const { t } = useI18n()
@@ -920,9 +921,14 @@ watch([dataList, installedFilter, hasUpdateFilter, enabledFilter], () => {
})
// 插件市场加载更多数据
function loadMarketMore({ done }: { done: any }) {
function loadMarketMore({ done }: { done: InfiniteScrollDone }) {
// 从 dataList 中获取最前面的 20 个元素
const itemsToMove = sortedUninstalledList.value.splice(0, 20)
if (itemsToMove.length === 0) {
done('empty')
return
}
displayUninstalledList.value.push(...itemsToMove)
done('ok')
}