美文网首页
axios 在dva中的使用

axios 在dva中的使用

作者: 第2世界 | 来源:发表于2020-02-07 22:25 被阅读0次

    使用axios获取后台数据

    services层:

    request.js

    
    
     import axios from 'axios'
    
     export default async function request (options) {
      const service = axios.create({
        // baseURL: 'https://api.example.com'
      });
      // request拦截器
      service.interceptors.request.use(config => 
        // 在发送请求之前做些什么
        config
      , error => {
        // 对请求错误做些什么
        Promise.reject(error)
      })
      // 添加响应拦截器
      service.interceptors.response.use((response) => 
        // 对响应数据做点什么
        response
      , (error) => 
        // 对响应错误做点什么
        Promise.reject(error)
      );
      let response
      try {
          response = await service(options)
          return response
      } catch (err) {
          return response
      }
    }
    
    

    api.js

    import request from '@/services/request'
    
    // 
    // eslint-disable-next-line import/prefer-default-export
    export function fetchData(params,data) {
      return request({
        // baseURL: 'https://www.easy-mock.com/mock/5a98c04628e12f3fbc3fd21a/xinedai',
        url: '/api/xxx/xxxxx',//接口名称
        method: 'post',
        params,
        data
      })
    }
    
    

    models层:

    model.js

    import { rtsGetCategorysList } from '@/services';
    import { fetchData} from '@/services/api';
    
    export default {
      namespace:"spending",// 命名空间名字,必填  
      state:{// state就是用来放初始值的
        payCode:"00"
      },
      /** 
       * // 能改变界面的action应该放这里,
       * 这里按官方意思不应该做数据处理,只是用来return state 从而改变界面
      */
     // 与后台交互,处理数据逻辑的地方
      effects:{
        *fetchData({ payload }, { call, put }){
          const response = yield call(fetchData, payload);
          console.log("speding",response)
        },
      },
      reducers:{
    
      }
    }
    
    

    components层:

    index.js

    componentDidMount() {
        const { dispatch } = this.props;
        console.log("componentDidMount............")
         dispatch({
           type: 'spending/fetchData',
         });
        console.log("componentDidMount............end")
      }
    
    

    非原创,摘自简书,留作笔记自己用

    相关文章

      网友评论

          本文标题:axios 在dva中的使用

          本文链接:https://www.haomeiwen.com/subject/bitbxhtx.html