vue中的qs

1.什么是qs:

qs是axios自带的一个库

目的是为了增强axios请求查询中的字符串解析和序列化字符串的安全性。可以将对象和字符串进行相互转换。

2.安装:

npm install qs

3.Vue项目中的导入:

import qs from 'qs'

4.场景

axios中调用接口时使用

// 创建axios实例
const service = axios.create({
  baseURL: process.env.VUE_APP_API, // api 的 base_url
  timeout: 10000 // 请求超时时间
})

service.defaults.headers.common['Content-Type'] = 'application/json'

// request拦截器
service.interceptors.request.use(
  config => {
    // param参数序列化
    config.paramsSerializer = params => qs.stringify(params, { arrayFormat: 'repeat' })

    return config
  },
)

5.qs的使用

  • qs.stringify(data)
    • 将对象序列化成url形式的字符串,以&符号进行拼接
const userObj = {name:'xiaoming',password:'123123'}
console.log('转换后的格式:',qs.stringify(userObj)

// 转换后的格式:name=xiaoming&password=123123
  • qs.parse(data)
    • 将URL形式的字符串解析成对象
const userStr = 'name=xiaoming&password=123456'
console.log(qs.parse(userStr))

//Object{
//    name:'xiaoming',
//    password:'123456'
// }

6.格式化数组arrayFormat

处理数组有三种方式:


qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
// 'a[0]=b&a[1]=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
// 'a[]=b&a[]=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })   默认
// 'a=b&a=c'   默认

默认arrayFormat就等于repeat

config.paramsSerializer = params => qs.stringify(params, { arrayFormat: 'repeat' })
等同于
config.paramsSerializer = params => qs.stringify(params)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值