nuxt---axios封装+环境变量配置
之前介绍nuxt 的基本用法,现在需要与后端联调,为了方便使用,于是进行接口的封装。
一,axios
1,安装 npm install @nuxtjs/axios
2,配置axios
// nuxt.config.js
modules: [
'@nuxtjs/axios',
'@nuxt/content'
],
axios: {
baseURL: process.env.BASE_URL,
},
3,封装接口
export default function ({ app, $axios},inject) {const API = {};
// 我自己这么写,会出现 Maximum call stack size exceeded 的问题。
// API.getGameList = function () {
//return $axios({
//url: '/apps.json',
//method: 'get',
//})
// };
API.getGameList = function () {
return $axios.$get('/apps.json')
};
// 使用 inject 之后,可以通过 this.$api.getGameList 调用接口
app.api = API;
inject('api',API);
}
4.1,asyncData 调用接口
async asyncData(context) {
const apiGame = await context.app.api.getGameList();
await console.log('获取接口', process.env.BASE_URL, apiGame)
return { apiGame }
},
4.2,methods 里使用
methods: {
async handleGame(){
console.log('$api---',this.$api)
const tempGame = await this.$api.getGameList();
console.log('tempGame',tempGame)
}
}
二,环境变量 nuxt 的环境变量是配在 package.json 文件里的
1,安装cross-env
npm i cross-env -D
2,修改 package.json 文件中的 scripts
"scripts": {
"dev": "cross-env BASE_URL=http://192.168.XXX.XXX:8080 NODE_ENV=development nuxt",
"build": "nuxt build",
"start": "nuxt start",
"generate": "nuxt generate",
"release": "nuxt generate",
"lint:js": "eslint --ext \".js,.vue\" --ignore-path .gitignore .",
"lint": "yarn lint:js"
},
3,在nuxt.config.js 添加配置
env: {
BASE_URL: process.env.BASE_URL,
NODE_ENV: process.env.NODE_ENV
},
【nuxt---axios封装+环境变量配置】配置完成之后,需要重启一下服务,才能获取到 BASE_URL
推荐阅读
- 人生感悟记#环境仪器宋庆国成长记#072
- 2020-04-07vue中Axios的封装和API接口的管理
- 基于|基于 antd 风格的 element-table + pagination 的二次封装
- 六步搭建ES6语法环境
- python自定义封装带颜色的logging模块
- jQuery插件
- iOS,打Framework静态库
- 使用Promise对微信小程序wx.request请求方法进行封装
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- vue.js|vue中使用axios封装成request使用