一、params是什么?
1、axios是一个基于promise的HTTP库,支持浏览器和node.js运行环境
2、params是axios支持的一种传参方式,是通过query string参数传递的,即对应于URL的?后面的key=value参数对
3、在get请求中,params会直接添加到URL中,如http://localhost/user?id=123
,而在post请求中则会作为request body请求体发送
二、传参方式
1、get请求传参
axios.get('/user', {
params: {
id: 123
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
2、post请求传参
axios.post('/user', {
firstName: 'John',
lastName: 'Doe'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
三、多个参数传递方式
1、在get请求中,可以使用数组形式,如
axios.get('/user', {
params: {
ids: [1, 2, 3]
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
2、或者是使用对象形式,如
axios.get('/user', {
params: {
id: {'key1': 'value1', 'key2': 'value2'}
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
四、params拦截器
1、在发送请求前,可以设置拦截器对传参进行处理,如
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
config.params.id = 123;
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
// 发送get请求
axios.get('/user/', {
params: {id: 456}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
2、在上述代码中,我们通过拦截器将请求参数中的id修改为了123,所以最终的请求中id为123而不是456
五、全局默认params
1、在发送请求时,我们可以设置全局默认的请求参数,如
// 在main.js中
axios.defaults.params = {
token: '123456'
};
// 然后再发送请求
axios.get('/user', {
params: {
id: 1
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
2、结果中会出现?token=123456&id=1
六、小结
通过以上阐述,我们了解了params的基本使用方法,包括传参方式、多个参数传递方式、拦截器以及全局默认params。在实际开发中,params的使用会很频繁,熟练使用可以提高开发效率,减少重复代码。