在vue2中如何实现数据请求显示loading图
这篇文章主要为大家详细介绍了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 'vuex'; import Loading from './components/common/loading'; export default { name: 'app', data() { return { } }, computed: { ...mapGetters([ 'fetchLoading', ]), }, components: { Loading, } } </script> <style> #app{ width: 100%; height: 100%; } </style>
这里的fetchLoading是存在vuex里面的一个变量。在store/modules/common.js里需要如下定义:
/* 此js文件用于存储公用的vuex状态 */ import api from './../../fetch/api' import * as types from './../types.js' 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 } }
loading组件如下:
<template> <p class="loading"> <img src="./../../assets/main/running.gif" alt=""> </p> </template> <script> export default { name: 'loading', 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>
最后在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('FETCH_LOADING', false) }, time) resolve(response.data) }) .catch((error) => { // 关闭 loading图片消失 store.dispatch('FETCH_LOADING', false) axiosDate = new Date() reject(error) }) }) } export default { // 组件中公共页面请求函数 commonApi (url, params) { if(stringQuery(window.location.href)) { store.dispatch('FETCH_LOADING', true); } axiosDate = new Date(); return fetch(url, params); } }
这样就实现了,项目中当加载数据的时候,显示gif图片,当数据加载出来时消失。
关于vue.js的学习教程,请大家点击专题vue.js组件学习教程、Vue.js前端组件学习教程进行学习。
更多vue学习教程请阅读专题《vue实战教程》
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
Atas ialah kandungan terperinci 在vue2中如何实现数据请求显示loading图. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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

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: 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.

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 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 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

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.

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
