前面记录了如何进行router页面跳转,接下来记录下页面跳转后数据获取如何实现(使用axios进行后台接口调用)
1.接口调用使用的是axios,我使用的是vue2,所以需要安装适配的版本 "^1.6.8",
npm install axios@1.6.8
2.封装requset.js
import axios from 'axios'
import { MessageBox } from 'element-ui';
//配置全局数据请求类型
axios.defaults.headers['Content-Type'] = "application/json;charset=utf-8";
//自定义实例
const service = axios.create({
baseURL: "http://192.168.250.110:8002/api/NewScreenAPI", //数据请求地址
timeout: 30 * 1000
})
// //配置加载参数(暂时注释)
// let loadingOption = {
// text: "正在努力加载中...",
// background: "rgba(0, 0, 0, .5)"
// }, loading;
//请求拦截器
service.interceptors.request.use(config => {
// //开始加载
// loading = Loading.service(loadingOption);
//数据转换
config.data = 'object'===typeof config.data ? JSON.stringify(config.data) : config.data;
//追加访问令牌
//config.headers['authtoken'] = store.getters.authtoken;
return config;
}, error => {
//loading.close();
// 弹出错误提示
const errorMessage = error.message || '网络请求发生未知错误';
MessageBox.error(errorMessage);
return Promise.reject(error);
});
//响应拦截器
service.interceptors.response.use(response => {
//loading.close();
if (response.status == 200) {
return response['data'];
}
return Promise.reject(response);
}, error => {
//loading.close();
// 弹出错误提示
const errorMessage = error.message || '网络请求发生未知错误';
MessageBox.error(errorMessage);
return Promise.reject(error);
});
export default service;
3.引入request.js(在main.js中)
import request from './request.js'
Vue.prototype.$http = request;
4.调用
this.$http.get(“接口地址”)
.then(response => {
const newProjectInfos = response.data;
// 比较新获取的数据与当前数据是否相同
if (!this.$isEqual(currentProjectInfos, newProjectInfos)) {
this.projectInfos = newProjectInfos;
}
})
.catch(error => {
console.log('API 1 error:', error);
});