import { onUnmounted } from 'vue' // 回调池 const cbPool: (() => void)[] = [] // 注册顶部按钮刷新回调(组件销毁时,自动销毁回调, 这是推荐的方式) export function registerRefreshCallback(cb: () => void) { cbPool.push(cb) onUnmounted(() => { const targetIndex = cbPool.findIndex(item => item === cb) if (targetIndex !== -1) { cbPool.splice(targetIndex, 1) } console.log('cbPool', cbPool.length) }) } // 注册顶部按钮刷新回调(组件销毁时,不会自动销毁回调,慎用) export function registerRefreshCallbackForever(cb: () => void) { cbPool.push(cb) } // 调用触发刷新事件回调 export function invokeAllRefreshCallback() { cbPool.forEach(cb => cb && cb()) }