웹 프론트엔드 uni-app uniapp에서 전역적으로 로딩을 사용자 정의하는 방법

uniapp에서 전역적으로 로딩을 사용자 정의하는 방법

May 22, 2023 am 09:54 AM

모바일 인터넷의 급속한 발전으로 모바일 애플리케이션은 사람들의 삶에 없어서는 안 될 부분이 되었습니다. 모바일 애플리케이션 개발에서 애니메이션 로딩은 사용자 경험을 크게 향상시키고 사용자가 애플리케이션 피드백을 더 빠르게 인식할 수 있도록 하는 데 특히 중요합니다. 이 글에서는 uniapp을 사용하여 글로벌 커스텀 로딩 애니메이션을 구현하고 사용자 경험을 개선하는 방법을 소개합니다.

1. 로딩 애니메이션을 사용자 정의해야 하는 이유

애플리케이션에서 애니메이션 로딩은 일반적으로 두 가지 상황으로 나뉩니다.

  1. 배경과의 상호 작용을 기다리는 경우: 백그라운드 인터페이스를 요청하려면 일정 시간 동안 기다려야 합니다. 이때 일반적으로 사용자에게 로딩 중임을 알리는 로딩 애니메이션이 필요합니다.
  2. 초기 로딩 시간이 너무 깁니다. 예를 들어, 애플리케이션이 열리면 애플리케이션의 초기 로딩을 기다려야 합니다. 이때 사용자에게 애플리케이션이 로딩 중임을 상기시키는 로딩 애니메이션도 필요합니다. .

그러나 기본 스타일 로딩 애니메이션은 우리의 요구 사항을 충족하지 못하는 경우가 많으며 사용자 경험을 개선하려면 사용자 정의 스타일과 애니메이션이 필요한 경우가 많습니다. 따라서 로딩 애니메이션을 전역적으로 맞춤설정해야 합니다.

2. 구현 계획

uniapp에서는 App.vue에 Loading 컴포넌트를 구현하여 글로벌 커스텀 로딩 애니메이션을 구현할 수 있습니다. 부모 컴포넌트와 자식 컴포넌트 간의 통신을 통해 글로벌 로딩 애니메이션을 표시하고 숨기는 것이 원칙입니다.

  1. 로딩 컴포넌트 생성

src/comComponents 폴더에 Loading 폴더를 생성한 후 그 안에 Loading.vue 파일을 생성하여 맞춤형 로딩 애니메이션 효과를 표시합니다.

코드는 다음과 같습니다.

<template>
  <div v-show="isShow" class="loading">
    <img src="@/static/loading.gif" alt="loading" />
  </div>
</template>

<script>
  export default {
    props: {
      isShow: {
        type: Boolean,
        default: false
      }
    }
  }
</script>

<style>
  .loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: rgba(0, 0, 0, 0.3);
    z-index: 999;
  }

  img {
    width: 60px;
    height: 60px;
  }
</style>
로그인 후 복사

위 코드에서는 div를 생성하고 로딩 애니메이션을 표시하는 스타일을 설정했습니다. isShow 속성은 props를 통해 전달되며 로딩 애니메이션을 표시해야 하는지 여부를 결정하는 데 사용됩니다.

  1. App.vue에 Loading 컴포넌트 소개

App.vue에서 Loading 컴포넌트를 도입하고 v-show를 통해 표시 및 숨기기를 제어해야 합니다.

코드는 다음과 같습니다.

<template>
  <div>
    <Loading :isShow="isLoading" />
    <router-view />
  </div>
</template>

<script>
import Loading from '@/components/Loading/Loading'

export default {
  components: {
    Loading
  },

  data() {
    return {
      isLoading: false
    }
  },

  methods: {
    startLoading() {
      this.isLoading = true
    },

    endLoading() {
      this.isLoading = false
    }
  },

  mounted() {
    this.$bus.$on('startLoading', this.startLoading)
    this.$bus.$on('endLoading', this.endLoading)
  },

  beforeDestroy() {
    this.$bus.$off('startLoading', this.startLoading)
    this.$bus.$off('endLoading', this.endLoading)
  }
}
</script>
로그인 후 복사

App.vue에 Loading 컴포넌트를 도입하고 v-show를 통해 표시 및 숨기기를 제어했습니다. 동시에 데이터에 isLoading 변수를 설정하여 Loading 구성 요소의 표시를 제어합니다.

마운트된 라이프 사이클에서 $bus.$on을 통해 startLoading 및 endLoading이라는 이벤트를 수신합니다. 이 두 이벤트는 로드 애니메이션을 사용하여 상위 구성 요소에 Loading 구성 요소를 표시하거나 숨기도록 알려야 하는 곳에서 트리거됩니다. 메모리 누수를 방지하려면 beforeDestroy 수명 주기에서 $bus.$off를 통해 청취 기능을 제거하세요.

  1. 로딩 애니메이션이 필요한 경우 startLoading 및 endLoading 이벤트를 트리거합니다.

로딩 애니메이션이 필요한 경우 $bus.$emit을 통해 startLoading 및 endLoading 이벤트를 트리거하여 App.vue의 Loading 구성 요소에 표시 및 숨기기를 알립니다.

예를 들어, 비동기 요청에서:

import axios from 'axios'

export default {
  methods: {
    async fetchData() {
      try {
        this.$bus.$emit('startLoading') // 触发startLoading事件,显示Loading组件
        const response = await axios.get('/api/data') // 这里是异步请求数据
        console.log(response.data)
      } catch (error) {
        console.error(error)
      } finally {
        this.$bus.$emit('endLoading') // 触发endLoading事件,隐藏Loading组件
      }
    }
  }
}
로그인 후 복사

위 코드에서는 데이터를 비동기적으로 요청하기 전에 $bus.$emit를 통해 startLoading 이벤트를 트리거했습니다. 이는 요청이 완료된 후 Loading 구성 요소를 표시하는 데 사용됩니다. Loading 구성 요소를 숨기려면 endLoading 이벤트가 트리거됩니다.

위의 세 단계를 통해 간단한 글로벌 커스텀 로딩 애니메이션을 구현할 수 있습니다.

3. 요약

모바일 애플리케이션 개발에서 애니메이션 로딩은 매우 중요한 피드백 메커니즘입니다. uniapp에서는 글로벌 Loading 컴포넌트를 커스터마이징함으로써 커스텀 로딩 애니메이션을 쉽게 구현하고 사용자 경험을 향상시킬 수 있습니다.

이 기사에서는 주로 세 단계로 전역 사용자 정의 로딩 애니메이션을 구현합니다. 먼저 사용자 정의 로딩 애니메이션 효과를 표시하기 위해 Loading 구성 요소를 생성한 다음 App.vue에 도입하고 해당 표시 및 제어를 v-show를 통해 제어합니다. . 표시하거나 숨기도록 App.vue의 Loading 구성 요소에 알리기 위해 애니메이션 로딩이 필요한 startLoading 및 endLoading 이벤트를 숨기고 마지막으로 트리거합니다.

위 내용은 uniapp에서 전역적으로 로딩을 사용자 정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Uni-App과 함께 전처리기 (Sass, Less)를 어떻게 사용합니까? Uni-App과 함께 전처리기 (Sass, Less)를 어떻게 사용합니까? Mar 18, 2025 pm 12:20 PM

기사는 UNI-APP에서 SASS 및 적은 전처리기를 사용하여 설정, 혜택 및 이중 사용을 자세히 설명합니다. 주요 초점은 구성과 장점에 있습니다. [159 자]

Uni-App의 애니메이션 API를 어떻게 사용합니까? Uni-App의 애니메이션 API를 어떻게 사용합니까? Mar 18, 2025 pm 12:21 PM

이 기사는 Uni-App의 애니메이션 API를 사용하는 방법, 애니메이션, 주요 기능 및 애니메이션 타이밍을 결합하고 제어하는 ​​방법을 작성하고 적용하는 단계를 자세히 설명합니다. character count : 159

UNIAPP 응용 프로그램에서 수행 할 수있는 다양한 유형의 테스트는 무엇입니까? UNIAPP 응용 프로그램에서 수행 할 수있는 다양한 유형의 테스트는 무엇입니까? Mar 27, 2025 pm 04:59 PM

이 기사는 장치, 통합, 기능, UI/UX, 성능, 크로스 플랫폼 및 보안 테스트를 포함한 UniAPP 응용 프로그램에 대한 다양한 테스트 유형에 대해 설명합니다. 또한 크로스 플랫폼 호환성을 보장하고 JES와 같은 도구를 권장합니다.

UniAPP 개발에 사용할 수있는 디버깅 도구는 무엇입니까? UniAPP 개발에 사용할 수있는 디버깅 도구는 무엇입니까? Mar 27, 2025 pm 05:05 PM

이 기사는 HBuilderx, WeChat 개발자 도구 및 Chrome Devtools와 같은 도구에 중점을 둔 UniAPP 개발을위한 디버깅 도구 및 모범 사례에 대해 설명합니다.

UNIAPP 응용 프로그램 패키지의 크기를 어떻게 줄일 수 있습니까? UNIAPP 응용 프로그램 패키지의 크기를 어떻게 줄일 수 있습니까? Mar 27, 2025 pm 04:45 PM

이 기사는 코드 최적화, 리소스 관리 및 코드 분할 및 게으른로드와 같은 기술에 중점을 둔 UNIAPP 패키지 크기를 줄이기위한 전략에 대해 설명합니다.

장치 기능 (카메라, 지리적 위치 등)에 액세스하기 위해 UNI-APP의 API를 사용하려면 어떻게합니까? 장치 기능 (카메라, 지리적 위치 등)에 액세스하기 위해 UNI-APP의 API를 사용하려면 어떻게합니까? Mar 18, 2025 pm 12:06 PM

이 기사에서는 UNI-APP의 API를 사용하여 허가 설정 및 오류 처리를 포함하여 카메라 및 지리적 위치와 같은 장치 기능에 액세스하는 것에 대해 설명합니다. 문자 수 : 158

UNI-APP의 스토리지 API (Uni.SetStorage, uni.getStorage)를 어떻게 사용합니까? UNI-APP의 스토리지 API (Uni.SetStorage, uni.getStorage)를 어떻게 사용합니까? Mar 18, 2025 pm 12:22 PM

이 기사는 로컬 데이터 관리를 위해 Uni-App의 스토리지 API (Uni.setStorage, uni.getStorage)를 사용하는 방법을 설명하고 모범 사례, 문제 해결 및 효과적인 사용을위한 제한 사항 및 고려 사항에 대해 설명합니다.

Uni-App의 페이지 간의 탐색을 어떻게 처리합니까? Uni-App의 페이지 간의 탐색을 어떻게 처리합니까? Mar 18, 2025 pm 12:07 PM

이 기사는 내장 API를 사용하여 UNI-APP의 페이지 탐색 처리, 효율적인 탐색을위한 모범 사례, 페이지 전환을위한 사용자 정의 애니메이션 및 페이지 간 데이터를 전달하는 방법에 대해 설명합니다.

See all articles