vue-cli整合axios的几种方法

Vue这个框架如今在单页面应用方面很是受人欢迎。vue

基于vue-cli建立的项目怎么样才能更好地处理网络请求?ios

首选的应该就是axios了vue-cli

此次给刚接触vue的新手介绍一下axios在vue中如何使用axios

安装的话本身去官网看api

1、不推荐的方法网络

//在要使用网络请求的组件中导入axios
import axios from 'axios' 
export default {
  name: 'HelloWorld',
  data () {
    return {
      params:{}
    }
  },
  methods: {
//在这里调用网络请求
    request(){
      axios.get(`url${this.params}`).then(result=>{
        console.log(result)
    })
    }
  }
}

这种方法比较麻瓜哪一个文件要用就  import axios from 'axios' ,可是太过繁琐,也不利于维护。app

2、网络请求较少框架

//打开main.js全局导入axios

import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'

//存在prototype中
Vue.prototype.$http = axios

//须要使用axios的其余组件调用时能够经过两种方法
//Vue.$http.get(`url${params}`)
//this.$http.get(`url${params}`)
//可是这样使用会出现一个问题,在单独的js文件中这样作调用不了$http,缘由是没有Vue的实例。大多数状况下用这种方法就能够知足大部分需求了

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  template: '<App/>',
  components: { App }
})

3、推荐方法this

用方法二已经能够知足大部分需求了,写的时候也比较爽,可是后期若是接口改变,还要一个个去查找修改,会显得很杂乱url

这里推荐一种本身平时的作法

//新建一个JS命名为api
import axios from 'axios' 
//在api中导入axios
let base = '/v1'

//把整个项目的网络请求都写在这个文件中用export导出

export const getproduct = params => { return axios.get(`${base}/product/info/${params}`) }

//这样写方便管理整个项目的网络请求
//在咱们要是用这个请求时好比说getproduct

import {
    getproduct
  }from '../api/api';
export default {
  name: 'HelloWorld',
  data () {
    return {
      params:{}
    }
  },
  methods: {
    getProductList(){
      getproduct(this.params).then(result=>{
        console.log(result);
      })
    }
  }
}
//注意咱们导出的时候用的是export 因此导入的时候必须带{}

 

完!

相关文章
相关标签/搜索