Rumah hujung hadapan web tutorial js 在vue2中如何实现数据请求显示loading图

在vue2中如何实现数据请求显示loading图

Jun 23, 2018 pm 05:58 PM
loading vue2 permintaan data

这篇文章主要为大家详细介绍了vue2实现数据请求显示loading图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一般项目中,有时候会要求,你在数据请求的时候显示一张gif图片,然后数据加载完后,消失。这个,一般只需要在封装的axios中写入js事件即可。当然,我们首先需要在app.vue中,加入此图片。如下:

<template>
 <p id="app">
 <loading v-show="fetchLoading"></loading>
 <router-view></router-view>
 </p>
</template>

<script>
 import { mapGetters } from &#39;vuex&#39;;
 import Loading from &#39;./components/common/loading&#39;;

 export default {
 name: &#39;app&#39;,
 data() {
 return {
 }
 },
 computed: {
 ...mapGetters([
 &#39;fetchLoading&#39;,
 ]),
 },
 components: {
 Loading,
 }
 }
</script>

<style>
 #app{
 width: 100%;
 height: 100%;
 }
</style>
Salin selepas log masuk

这里的fetchLoading是存在vuex里面的一个变量。在store/modules/common.js里需要如下定义:

/* 此js文件用于存储公用的vuex状态 */
import api from &#39;./../../fetch/api&#39;
import * as types from &#39;./../types.js&#39;
const state = {
 // 请求数据时加载状态loading
 fetchLoading: false
}
const getters = {
 // 请求数据时加载状态
 fetchLoading: state => state.fetchLoading
}
const actions = {
 // 请求数据时状态loading
 FETCH_LOADING({
 commit
 }, res) {
 commit(types.FETCH_LOADING, res)
 },
}
const mutations = {
 // 请求数据时loading
 [types.FETCH_LOADING] (state, res) {
 state.fetchLoading = res
 }
}
Salin selepas log masuk

loading组件如下:

<template>
 <p class="loading">
 <img src="./../../assets/main/running.gif" alt="">
 </p>
</template>

<script>
 export default {
 name: &#39;loading&#39;,
 data () {
 return {}
 },
 }
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
 .loading{
 position: fixed;
 top:0;
 left:0;
 z-index:121;
 width: 100%;
 height: 100%;
 background: rgba(0,0,0,0.3);
 display: table-cell;
 vertical-align: middle;
 text-align: center;
 }
 .loading img{
 margin:5rem auto;
 }
</style>
Salin selepas log masuk

最后在fetch/api.js里封装的axios里写入判断loading事件即可:如下

// axios的请求时间
let axiosDate = new Date()
export function fetch (url, params) {
 return new Promise((resolve, reject) => {
 axios.post(url, params)
 .then(response => {
 // 关闭 loading图片消失
 let oDate = new Date()
 let time = oDate.getTime() - axiosDate.getTime()
 if (time < 500) time = 500
 setTimeout(() => {
  store.dispatch(&#39;FETCH_LOADING&#39;, false)
 }, time)
 resolve(response.data)
 })
 .catch((error) => {
 // 关闭 loading图片消失
 store.dispatch(&#39;FETCH_LOADING&#39;, false)
 axiosDate = new Date()
 reject(error)
 })
 })
}
export default {
 // 组件中公共页面请求函数
 commonApi (url, params) {
 if(stringQuery(window.location.href)) {
 store.dispatch(&#39;FETCH_LOADING&#39;, true);
 }
 axiosDate = new Date();
 return fetch(url, params);
 }
}
Salin selepas log masuk

这样就实现了,项目中当加载数据的时候,显示gif图片,当数据加载出来时消失。

关于vue.js的学习教程,请大家点击专题vue.js组件学习教程、Vue.js前端组件学习教程进行学习。

更多vue学习教程请阅读专题《vue实战教程》

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

使用Angular5实现服务端渲染实战

在vuex中如何实现闲置状态进行重置

使用jQuery封装animate.css(详细教程)

vue-cli配置文件(详细教程)

Atas ialah kandungan terperinci 在vue2中如何实现数据请求显示loading图. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah perbezaan antara susunan pelaksanaan kitaran hayat dalam vue2 dan vue3 Apakah perbezaan antara susunan pelaksanaan kitaran hayat dalam vue2 dan vue3 May 16, 2023 pm 09:40 PM

Perbezaan dalam susunan pelaksanaan kitaran hayat antara vue2 dan vue3 Perbandingan kitaran hayat Perintah pelaksanaan dalam vue2 beforeCreate=>dibuat=>beforeMount=>mounted=>beforeUpdate=>updated=>beforeDestroy=>musnah Perintah pelaksanaan dalam persediaan vue3==>onBeforeMount >onMounted=> onBeforeUpdate=>onUpdated=>onBeforeUnmount=&g

Fahami dengan cepat algoritma perbezaan Vue2 (penjelasan grafik terperinci) Fahami dengan cepat algoritma perbezaan Vue2 (penjelasan grafik terperinci) Mar 17, 2023 pm 08:23 PM

Algoritma diff ialah algoritma cekap yang membandingkan nod pokok pada tahap yang sama, mengelakkan keperluan untuk mencari dan melintasi lapisan pokok demi lapisan. Jadi berapa banyak yang anda tahu tentang algoritma diff? Artikel berikut akan memberi anda analisis mendalam tentang algoritma perbezaan vue2. Saya harap ia akan membantu anda!

Pilihan permintaan data dalam Vue: Axios atau Fetch? Pilihan permintaan data dalam Vue: Axios atau Fetch? Jul 17, 2023 pm 06:30 PM

Pilihan permintaan data dalam Vue: AxiosorFetch? Dalam pembangunan Vue, mengendalikan permintaan data adalah tugas yang sangat biasa. Memilih alat yang hendak digunakan untuk permintaan data adalah persoalan yang perlu dipertimbangkan. Dalam Vue, dua alatan yang paling biasa ialah Axios dan Fetch. Artikel ini akan membandingkan kebaikan dan keburukan kedua-dua alat dan memberikan beberapa kod sampel untuk membantu anda membuat pilihan anda. Axios ialah klien HTTP berasaskan Promise yang berfungsi dalam penyemak imbas dan Node.

Bagaimana untuk melaksanakan kesan pemuatan global dalam Vue Bagaimana untuk melaksanakan kesan pemuatan global dalam Vue Jun 11, 2023 am 09:05 AM

Dalam pembangunan bahagian hadapan, kita sering mempunyai senario di mana pengguna perlu menunggu data dimuatkan semasa interaksi dengan halaman web Pada masa ini, biasanya terdapat kesan pemuatan yang dipaparkan untuk mengingatkan pengguna untuk menunggu. Dalam rangka kerja Vue, tidak sukar untuk melaksanakan kesan pemuatan global Mari perkenalkan cara melaksanakannya. Langkah 1: Cipta pemalam Vue Kita boleh mencipta pemalam Vue bernama loading, yang boleh dirujuk dalam semua kejadian Vue. Dalam pemalam, kita perlu melaksanakan dua kaedah berikut: s

Pustaka permintaan data yang biasa digunakan dalam rangka kerja Vue: Penjelasan terperinci Axios Pustaka permintaan data yang biasa digunakan dalam rangka kerja Vue: Penjelasan terperinci Axios Jul 18, 2023 am 09:12 AM

Pustaka permintaan data yang biasa digunakan dalam rangka kerja Vue: Penjelasan terperinci Axios Tajuk: Pustaka permintaan data yang biasa digunakan dalam rangka kerja Vue: Penjelasan terperinci Axios Pengenalan: Dalam pembangunan Vue, permintaan data adalah bahagian penting. Sebagai perpustakaan permintaan data yang biasa digunakan dalam Vue, Axios mempunyai API yang ringkas dan mudah digunakan serta fungsi yang berkuasa, menjadikannya alat permintaan data pilihan dalam pembangunan bahagian hadapan. Artikel ini akan memperkenalkan secara terperinci cara menggunakan Axios dan beberapa senario aplikasi biasa, dan menyediakan contoh kod yang sepadan untuk rujukan pembaca. Axios

Vue dan Axios bergabung tenaga untuk mengoptimumkan proses pemprosesan permintaan data bahagian hadapan Vue dan Axios bergabung tenaga untuk mengoptimumkan proses pemprosesan permintaan data bahagian hadapan Jul 21, 2023 am 08:09 AM

Vue dan Axios bergabung untuk mengoptimumkan proses pemprosesan permintaan data bahagian hadapan selalunya memerlukan interaksi data dengan bahagian belakang Permintaan dan pemprosesan adalah salah satu tugas teras pembangunan bahagian hadapan. Vue.js ialah rangka kerja bahagian hadapan yang popular, dan Axios ialah perpustakaan HTTP berasaskan Promise Gabungan kedua-duanya boleh mengoptimumkan proses pemprosesan permintaan data bahagian hadapan. Artikel ini akan memperkenalkan cara menggunakan Vue dan Axios bersama-sama, dan contohnya adalah seperti berikut. Pertama, kita perlu memperkenalkan Vue dan Axios ke dalam projek

Mari kita bincangkan tentang cara menyediakan antara muka 404 dalam Vue2 dan Vue3 Mari kita bincangkan tentang cara menyediakan antara muka 404 dalam Vue2 dan Vue3 Feb 17, 2023 pm 02:25 PM

Artikel ini akan membawa anda melalui pembelajaran Vue dan bercakap tentang cara menyediakan antara muka 404 dalam Vue2 dan Vue3 Saya harap ia akan membantu anda.

Bagaimana untuk menyelesaikan masalah yang era lalu terus dimuatkan? Bagaimana untuk menyelesaikan masalah yang era lalu terus dimuatkan? Mar 07, 2024 pm 07:30 PM

Dalam era pemuatan terakhir, anda boleh memilih Grafik dalam tetapan, dayakan LimtFPS dan LimitBackgroundFPS, tetapkan had atas mengikut komputer, kurangkan pantulan dan ketumpatan tumbuh-tumbuhan serendah mungkin, dan hanya pilih TAA untuk Anti-aliasing. Bagaimana untuk menyelesaikan masalah yang terus dimuatkan Epoch Terakhir 1. Masukkan tetapan permainan dan pilih Grafik. 2. Semak LimtFPS dan tetapkannya mengikut konfigurasi komputer anda. 3. Kemudian semak LimitBackgroundFPS dan tetapkannya mengikut konfigurasi komputer. 4. Pilih sangat rendah atau rendah untuk refleksi, dan laraskan kepadatan tumbuh-tumbuhan kepada rendah. 5. Pilih TAA anti-aliasing dalam Antialiasing. 6. Ini boleh diselesaikan

See all articles