index.js 1.01 KB
/*
 * @Author: hookehuyr hookehuyr@gmail.com
 * @Date: 2022-05-17 12:13:13
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2022-06-09 09:40:35
 * @FilePath: /tswj/src/composables/index.js
 * @Description:
 */
import { onMounted, onUnmounted } from 'vue'

import { useVideoList } from '@/composables/useVideoList.js'
import { useDefaultPerf } from '@/composables/useDefaultPerf.js'
import { useBookList, useAsyncBookList } from '@/composables/useBookList.js'
import { useShortcutBar } from '@/composables/useShortcutBar.js'
import { useScrollTop } from '@/composables/useScrollTop.js'

export {
  useVideoList,
  useDefaultPerf,
  useBookList,
  useAsyncBookList,
  useShortcutBar,
  useScrollTop
}

/**
 * 添加和清除 DOM 事件监听器
 * @param {*} target 
 * @param {*} event 
 * @param {*} callback 
 */
export function useEventListener(target, event, callback) {
  onMounted(() => target && target.addEventListener(event, callback))
  onUnmounted(() => target && target.removeEventListener(event, callback))
}