博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue基于vuex和axios实现加载效果以及axios的安装配置
阅读量:4087 次
发布时间:2019-05-25

本文共 1624 字,大约阅读时间需要 5 分钟。

本篇文章给大家带来的内容是关于Vue基于vuex和axios拦截器实现loading效果及axios的安装配置,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。转载 

 

准备

  • 利用vue-cli脚手架创建项目

  • 进入项目安装vuex、axios(npm install vuex,npm install axios)

axios配置

项目中安装axios模块(npm install axios)完成后,进行以下配置:

main.js

1

2

3

4

5

//引入axios

import Axios from 'axios'

 

//修改原型链,全局使用axios,这样之后可在每个组件的methods中调用$axios命令完成数据请求

Vue.prototype.$axios=Axios

loading组件

我这里就选择使用iview提供的loading组件,

1

2

3

4

5

6

npm install iview

 

main.js

import iView from 'iview';

import 'iview/dist/styles/iview.css';

Vue.use(iView);

安装引入后,将loading写成一个组件loading.vue

53601419-5b7d263f2495c_articlex.png

Vuex state状态设置控制loading的显隐

store.js(Vuex)

1

2

3

4

5

export const store = new Vuex.Store({

    state:{

        isShow:false

    }

})

在state中定义isShow属性,默认false隐藏

1

v-if="this.$store.state.isShow"

为loading组件添加v-if绑定state中的isShow

组件使用axios请求数据

1

<button @click="getData">请求数据</button>

1

2

3

4

5

6

7

8

9

10

11

methods:{

        getData(){

            this.$axios.get('https://www.apiopen.top/journalismApi')

            .then(res=>{

                console.log(res)//返回请求的结果

            })

            .catch(err=>{

                console.log(err)

            })

        }

    }

我这里使用一个按钮进行触发事件,利用get请求网上随便找的一个api接口,.then中返回请求的整个结果(不仅仅包括数据)

Axios拦截器配置

main.js

1

2

3

4

5

6

7

8

9

10

//定义一个请求拦截器

Axios.interceptors.request.use(function(config){

  store.state.isShow=true; //在请求发出之前进行一些操作

  return config

})

//定义一个响应拦截器

Axios.interceptors.response.use(function(config){

  store.state.isShow=false;//在这里对返回的数据进行处理

  return config

})

分别定义一个请求拦截器(请求开始时执行某些操作)、响应拦截器(接受到数据后执行某些操作),之间分别设置拦截时执行的操作,改变state内isShow的布尔值从而控制loading组件在触发请求数据开始时显示loading,返回数据时隐藏loading

特别注意:这里有一个语法坑(我可是来来回回踩了不少次)main.js中调取、操作vuex state中的数据不同于组件中的this.$store.state,而是直接store.state 同上面代码

效果展示

3238449369-5b7d2b18395ec_articlex.png

2586587721-5b7d2ada0d718_articlex.png

相关推荐:

以上就是Vue基于vuex和axios实现加载效果以及axios的安装配置的详细内容,更多请关注php中文网其它相关文章!

你可能感兴趣的文章
所谓的进步和提升,就是完成认知升级
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
No.182 - LeetCode1325 - C指针的魅力
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Java8 HashMap集合解析
查看>>
自定义 select 下拉框 多选插件
查看>>
Linux常用统计命令之wc
查看>>
fastcgi_param 详解
查看>>
搞定Java面试中的数据结构问题
查看>>
React Native(一):搭建开发环境、出Hello World
查看>>
Winform多线程
查看>>
Spring AOP + Redis + 注解实现redis 分布式锁
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
《计算机网络》第五章 运输层 ——TCP和UDP 可靠传输原理 TCP流量控制 拥塞控制 连接管理
查看>>
二叉树深度优先遍历和广度优先遍历
查看>>
生产者消费者模型,循环队列实现
查看>>
获得github工程中的一个文件夹的方法
查看>>
《PostgreSQL技术内幕:查询优化深度探索》养成记
查看>>
PostgreSQL查询优化器详解之逻辑优化篇
查看>>
STM32中assert_param的使用
查看>>