对于中小型企业,vue应用越来越多,学习vue相对于react的成本要低点,入门相对简单。话说来,你想学精,还是得花很多事件得研究的。您可以关注Web前端之家,一起学习。
今天我们一起来学下:vuejs里对于API接口的处理以及封装方法应用。
API接口基础应用
在原生javascript和JQ里,我们前端处理接口,一般都是使用get和post方法。在vueJs里,也是如此,只不过我们多了一个axios。
在vue里面处理接口,首先我们得装下axios。操作方法如下:
npm install vue-axios --save npm install qs.js --save //这一步可以先忽略,它的作用是能把json格式的直接转成data所需的格式
安装完之后,我们在vue配置文件里应用它,看代码:
import Vue from 'vue' import axios from 'axios' Vue.prototype.$axios = axios //全局注册,使用方法为:this.$axios Vue.prototype.qs = qs //全局注册,使用方法为:this.qs
然后在项目里应用它:
<script> export default{ data(){ return{ userId:666, token:'', } }, created(){ this.$axios({ method:'post', url:'api', data:this.qs.stringify({ //这里是发送给后台的数据 userId:this.userId, token:this.token, }) }).then((response) =>{ //这里使用了ES6的语法 console.log(response) //请求成功返回的数据 }).catch((error) => console.log(error) //请求失败返回的数据 }) } }</script>
这是个最简单的处理api接口的应用。
如果项目中有很多个接口呢?那么我们就不能这样去做了,利用原生js处理方法,封装起来。
封装
我们拿一个很简单的例子来说明下:
/** * api接口统一管理 */ import { get, post } from './axios'; /** * @param {string} params * 我们定义了一个topics方法 * 这个方法有一个参数params * params是我们请求接口时携带的参数对象 * 而后调用了我们封装的post方法 * post方法的第一个参数是我们的接口地址 * 第二个参数是topics的params参数 * 即请求接口时携带的参数对象 * 最后通过export导出topics。 */ // 用户相关接口 export const login = params => post('/users/login', params);//登录 export const logout = params => post('/users/logout', params);//登出 export const uplodHead = params => post('/users/uploadHead', params);//修改头像 export const bannerTextList = params => post('/query/bannerTextList', params);//查询轮播内容 export const getArticle = params => post('/query/getArticle', params);//普通文章详情 export const uploadBgImg = params => post('/upload/uploadBgImg', params);//普通文章页面背景 export const getBannerBg = params => post('/query/getBannerBg', params);//查询普通文章页面背景 ....
从上面的的代码可以看出,我们把每个功能api都封装起来了,并且放在api.js里,这样处理,便于我们在其他页面应用它。
现在我们要应用它,先在公用index.js里配置下,
import * as api from './api' export default api
接下来我们可以在其他页面里应用它了。
//先引入 import { getArticle } from '..tp/api.js' //使用 getArticle(这里是参数).then((res)=>{ console.log(res); })
跨域
众所周知,处理API接口,经常会遇到跨域问题,在vueJS里,我们处理跨域的方法比较简单。这里也直接拿代码来说;
在vue.config.js进行如下配置:
module.exports = { publicPath: buidLocal ? '' : '/', outputDir: buidLocal ? 'public/static/YhIndex_app' : 'dist', assetsDir: 'static', lintOnSave: false, productionSourceMap: !buidLocal, // 本地包编译不需要SourceMap filenameHashing: !buidLocal, // 本地包编译不需要给文件名添加hash devServer: { host: '0.0.0.0', port: '8086', proxy: { '/static/trade.html': { target: 'http://localhost:8086', pathRewrite: { '/static/trade.html': '/trade.html', } }, '/bo/call': { target: `http://192.168.35.88:10576`, changeOrigin: true, }, '/login': { target: `http://192.168.35.88:10576`, changeOrigin: true, }, '/upload_image': { target: `http://192.168.35.88:10576`, changeOrigin: true, }, '/task': { target: `http://192.168.35.88:8920`, changeOrigin: true, } }, } };
这样就可以了,当然这是项目里的DEMO代码,大家如果要应用,可以根据自己项目的配置进行修改即可。
总结
关于在vuejs里处理api接口的方法和应用,大概就这些内容了,分析得不够详细,如果您基础不好或者看不懂,可以加群咨询或者留言都可以。
网友评论文明上网理性发言 已有2人参与
发表评论:
评论列表