Heim > Web-Frontend > View.js > Hauptteil

So implementieren Sie den globalen Ladeeffekt in Vue

WBOY
Freigeben: 2023-06-11 09:05:20
Original
5850 Leute haben es durchsucht

In der Front-End-Entwicklung kommt es häufig vor, dass der Benutzer während der Interaktion mit der Webseite auf das Laden der Daten warten muss. Zu diesem Zeitpunkt wird normalerweise ein Ladeeffekt angezeigt, der den Benutzer daran erinnert, zu warten. Im Vue-Framework ist es nicht schwierig, einen globalen Ladeeffekt zu implementieren. Lassen Sie uns vorstellen, wie man ihn implementiert.

Schritt 1: Erstellen Sie ein Vue-Plug-in

Wir können ein Vue-Plug-in mit dem Namen loading erstellen, auf das in allen Vue-Instanzen verwiesen werden kann. Im Plug-in müssen wir die folgenden zwei Methoden implementieren: loading的Vue插件,该插件可以在所有的Vue实例中引用。在插件中,我们需要实现以下两个方法:

  1. show():用于显示loading效果
  2. hide():用于隐藏loading效果

以下是loading插件的代码:

const Loading = {
  show() {
    // 显示loading效果的代码
  },
  hide() {
    // 隐藏loading效果的代码
  }
}

export default {
  install(Vue) {
    Vue.prototype.$loading = Loading
  }
}
Nach dem Login kopieren

在上述代码中,我们定义了一个名为Loading的对象,该对象包含了显示和隐藏loading效果的方法。install()方法被用于将loading对象安装到Vue实例上,从而使该对象在所有Vue实例中可以被引用。

第二步:实现loading组件

为了实现loading效果,我们需要在Vue组件中添加一个覆盖整个屏幕的loading层。这可以通过CSS来实现。具体来说,我们可以在Vue组件内动态添加和删除loading层的DOM元素,从而实现loading效果的显示和隐藏。以下是一个简单的loading组件:

<template>
  <div v-if="visible" class="loading-mask">
    <div class="loading-spinner"></div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      visible: false
    }
  },
  methods: {
    show() {
      this.visible = true
    },
    hide() {
      this.visible = false
    }
  }
}
</script>

<style>
.loading-mask {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.loading-spinner {
  border: 4px solid #f3f3f3;
  border-radius: 50%;
  border-top: 4px solid #3498db;
  width: 60px;
  height: 60px;
  -webkit-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite;
}

@-webkit-keyframes spin {
  0% { -webkit-transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); }
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
</style>
Nach dem Login kopieren

在上述代码中,我们定义了一个名为loading-mask的div层,它覆盖整个页面,并设置了一个半透明的黑色背景。在loading-mask中,我们添加了另一个名为loading-spinner的div层,该层用于显示一个旋转的loading图标。最后,我们在Vue组件的data中定义了一个visible变量,用于判断loading层是否需要显示。

第三步:在组件中使用loading

现在我们已经实现了一个基本的loading组件和一个Vue插件,接下来我们需要在Vue组件中使用它们。

首先,在Vue组件中引入刚才创建的Vue插件,并把loading组件添加到当前组件中:

<template>
  <div>
    <h1>这是一个Vue组件</h1>
    <loading ref="loading"></loading>
  </div>
</template>

<script>
import LoadingPlugin from '@/plugins/loading'
import Loading from '@/components/Loading'

export default {
  name: 'HelloWorld',
  components: {
    Loading
  },
  mounted() {
    this.$loading = this.$refs.loading
  },
  plugins: [
    LoadingPlugin
  ],
  methods: {
    fetchData() {
      this.$loading.show() // 显示loading效果
      // 发送请求
      // ...
      this.$loading.hide() // 隐藏loading效果
    }
  }
}
</script>
Nach dem Login kopieren

在上述代码中,我们首先引入了之前创建的Vue插件LoadingPlugin,然后使用components属性将loading组件添加到当前组件中。在mounted()方法中,我们将loading组件的实例赋值给$loading属性,从而方便我们在当前组件中调用show和hide方法来显示和隐藏loading效果。

最后,在fetchData()方法中,我们可以调用this.$loading.show()来显示loading效果,在数据加载完毕后,再调用this.$loading.hide()方法来隐藏它。这样我们就成功地实现了一个全局loading效果。

总结

在本文中,我们介绍了如何在Vue框架中实现一个全局loading效果。我们创建了一个loading

  1. show(): Wird verwendet, um den Ladeeffekt anzuzeigen
  2. hide ()
  3. Code>: Wird verwendet, um den Ladeeffekt zu verbergen
Das Folgende ist der Code des loading-Plug-Ins: 🎜rrreee🎜Im obigen Code definieren wir eine Datei mit dem Namen Loading object, die Methoden zum Ein- und Ausblenden von Ladeeffekten enthält. Die Methode <code>install() wird verwendet, um das Objekt loading auf der Vue-Instanz zu installieren, sodass auf das Objekt in allen Vue-Instanzen verwiesen werden kann. 🎜🎜Schritt 2: Implementieren Sie die Ladekomponente🎜🎜Um den Ladeeffekt zu erzielen, müssen wir der Vue-Komponente eine Ladeebene hinzufügen, die den gesamten Bildschirm abdeckt. Dies kann durch CSS erreicht werden. Insbesondere können wir die DOM-Elemente der Ladeebene innerhalb der Vue-Komponente dynamisch hinzufügen und löschen, um den Ladeeffekt anzuzeigen und auszublenden. Das Folgende ist eine einfache Ladekomponente: 🎜rrreee🎜Im obigen Code definieren wir eine div-Ebene mit dem Namen loading-mask, die die gesamte Seite abdeckt und einen halbtransparenten schwarzen Hintergrund festlegt. In loading-mask haben wir eine weitere div-Ebene namens loading-spinner hinzugefügt, die zur Anzeige eines rotierenden Ladesymbols verwendet wird. Schließlich haben wir eine visible-Variable in den data der Vue-Komponente definiert, um zu bestimmen, ob die Ladeebene angezeigt werden muss. 🎜🎜Schritt 3: Laden in der Komponente verwenden🎜🎜Da wir nun eine grundlegende Ladekomponente und ein Vue-Plug-in implementiert haben, müssen wir diese in der Vue-Komponente verwenden. 🎜🎜Führen Sie zunächst das soeben erstellte Vue-Plug-In in die Vue-Komponente ein und fügen Sie die Ladekomponente zur aktuellen Komponente hinzu: 🎜rrreee🎜Im obigen Code führen wir zunächst das Vue-Plug-In LoadingPluginein > zuvor erstellt und verwenden Sie dann das Attribut components, um die Ladekomponente zur aktuellen Komponente hinzuzufügen. In der Methode montiert() weisen wir die Instanz der Ladekomponente dem Attribut $loading zu, was uns den Aufruf der Show- und Hide-Methoden in der aktuellen Komponente erleichtert Ladeeffekt ein- und ausblenden. 🎜🎜Schließlich können wir in der fetchData()-Methode this.$loading.show() aufrufen, um den Ladeeffekt anzuzeigen. Nachdem die Daten geladen wurden, rufen Sie this.$loading auf. hide()-Methode verwenden, um es auszublenden. Auf diese Weise ist es uns gelungen, einen globalen Ladeeffekt zu erzielen. 🎜🎜Zusammenfassung🎜🎜In diesem Artikel haben wir vorgestellt, wie man einen globalen Ladeeffekt im Vue-Framework implementiert. Wir erstellen ein loading-Plugin und installieren es in der Vue-Instanz, damit es in allen Vue-Komponenten aufgerufen werden kann. Wir haben auch eine Ladekomponente implementiert, in der DOM-Elemente dynamisch hinzugefügt und gelöscht werden, um den Ladeeffekt anzuzeigen und auszublenden. Schließlich rufen wir die Show- und Hide-Methoden des $loading-Objekts in der Vue-Komponente auf, um den Ladeeffekt anzuzeigen und auszublenden. Durch diese Implementierung können wir eine gute Benutzererfahrung erzielen, die Wartezeit der Benutzer verkürzen und die Anwendungsleistung verbessern. 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie den globalen Ladeeffekt in Vue. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!