ajax是一个比较常用的异步操作,在Vue中或者其他框架的实例中如果使用$.ajax({})需要在success函数后面bind(this)或者var that=this,而且每次都要写各个重复的参数或者代码,不想叙述了,直接上代码吧,很方便用
向外暴露一个方法:
export function getData(url,back) {
return new Promise((resolve, reject) => {
$.ajax({
url: url,
type: 'post',
dataType: 'jsonp',
jsonpCallback:back,
success(data) {
resolve(data)
},
error(err) {
reject(err)
}
})
})
}
在组件中引入:
import { getData } from 'assets/js/ajax'
建议先在methods中定义方法:
_getData() {
getData(url, back).then((res) => {
console.log(res)
//操作数据
}).catch((err) => {
//返回promise中的reject
})
},
然后生命周期created中使用:
created(){
this._getData()
}
最后,其实所有的可复用的方法都可以封装起来,用尽量少的代码实现功能。
最最后,promise是非常强大的一个方法,很好用。