useOnline.ts 758 B

123456789101112131415161718192021222324252627282930
  1. import { ref, onMounted, onUnmounted } from 'vue';
  2. /**
  3. * @description 用户网络是否可用
  4. * */
  5. export function useOnline() {
  6. const online = ref(true);
  7. const showStatus = (val) => {
  8. online.value = typeof val == 'boolean' ? val : val.target.online;
  9. };
  10. // 在页面加载后,设置正确的网络状态
  11. navigator.onLine ? showStatus(true) : showStatus(false);
  12. onMounted(() => {
  13. // 开始监听网络状态的变化
  14. window.addEventListener('online', showStatus);
  15. window.addEventListener('offline', showStatus);
  16. });
  17. onUnmounted(() => {
  18. // 移除监听网络状态的变化
  19. window.removeEventListener('online', showStatus);
  20. window.removeEventListener('offline', showStatus);
  21. });
  22. return { online };
  23. }