import qs from 'querystring'
let config = {
transformRequest: [function (data) {
return qs.stringify(data)
}],
}
自己配置了一个默认配置对象,然后在全局对axios进行默认配置Vue.http.defaults = Object.assign(Vue.http.defaults, config)
这样子写的话transformRequest
能正确运行我设置的默认配置,但是如果用Object.assign({}, Vue.http.defaults, config)
或者{...Vue.http.defaults, ...config}
的话,结果跑的是axios自己的默认配置,那么这两种赋值方法的区别是在哪呢?
Object.assign()
是一重深度的深拷贝第一个方法没有改变vue.http.defaults实例,
返回的还是vue.http.defaults对象
Object.assign({}, Vue.http.defaults, config)
或者{...Vue.http.defaults, ...config}返回了一个全新的对象
{}
,这个对象和axios.defaults完全没有任何关系了具体请见 MDN关于 object.assign()的文档
不知道了!