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 因此导入的时候必须带{}
完!