试了几个只有 deepseek 回答对了这个问题
下面代码中 vue3 hook removeEventListener 应该用 val?.removeEventListener(event, callback) 还是 oldValue?.removeEventListener(event, callback);
export function useEventListener(target: MaybeRefOrGetter<EventTarget>, event: string, callback: EventListenerOrEventListenerObject) {
onMounted(() => {
watch(() => toValue(target), (val, oldValue, onCleanup) => {
onCleanup(() => {
val?.removeEventListener(event, callback);
});
val?.addEventListener(event, callback);
}, {
immediate: true,
});
});
}