最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Vue基于vuex、axios实现loading效果及axios的安装配置

来源:动视网 责编:小采 时间:2020-11-27 21:57:58
文档

Vue基于vuex、axios实现loading效果及axios的安装配置

Vue基于vuex、axios实现loading效果及axios的安装配置:准备 利用vue-cli脚手架创建项目 进入项目安装vuex、axios(npm install vuex,npm install axios) axios配置 项目中安装axios模块(npm install axios)完成后,进行以下配置: main.js //引入axios import Axios fro
推荐度:
导读Vue基于vuex、axios实现loading效果及axios的安装配置:准备 利用vue-cli脚手架创建项目 进入项目安装vuex、axios(npm install vuex,npm install axios) axios配置 项目中安装axios模块(npm install axios)完成后,进行以下配置: main.js //引入axios import Axios fro


准备

  • 利用vue-cli脚手架创建项目
  • 进入项目安装vuex、axios(npm install vuex,npm install axios)
  • axios配置

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

    main.js

    //引入axios
    import Axios from 'axios'
    //修改原型链,全局使用axios,这样之后可在每个组件的methods中调用$axios命令完成数据请求
    Vue.prototype.$axios=Axios

    loading组件

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

    npm install iview

    main.js
    import iView from 'iview';
    import 'iview/dist/styles/iview.css';
    Vue.use(iView);

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

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

    store.js(Vuex)

    export const store = new Vuex.Store({
     state:{
     isShow:false
     }
    })

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

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

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

    组件使用axios请求数据

    <button @click="getData">请求数据</button>
    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

    //定义一个请求
    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 同上面代码

    效果展示

    总结

    以上所述是小编给大家介绍的Vue基于vuex、axios实现loading效果及axios的安装配置,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

    文档

    Vue基于vuex、axios实现loading效果及axios的安装配置

    Vue基于vuex、axios实现loading效果及axios的安装配置:准备 利用vue-cli脚手架创建项目 进入项目安装vuex、axios(npm install vuex,npm install axios) axios配置 项目中安装axios模块(npm install axios)完成后,进行以下配置: main.js //引入axios import Axios fro
    推荐度:
    标签: VUE axios 安装vue
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top