vue中jsonp的调用

vue开发中获取后台的数据有很多的方法, 这里我自己总结一下学习的东西,就是关于jsonp的调用,目前还没有时间去了解它的原理,jsonp是支持npm安装的,所以首先安装一下jsonp:

cnpm install jsonp --save

目前ES6当中的promise比较流行,所以这里我也跟视频里的一样采用它,一来可以熟悉它的语法,二来以后扩充会比较方便。

first:因为它比较通用,所以我们给他新建一个js文件。我们可以封装一个函数

在vue文件夹下创建一个jsonp.js专门用于处理数据的,其实就是将引入的jsonp进行封装

import originalJSONP from 'jsonp'

export default function jsonp (url, data, option) { 
    url += (url.indexOf('?')<0? '?':'&') + param(data)
     return new promise((resolve, reject) => {
      originalJSONP(url, option, (err, data) => {
        if (!err) {
            resolve(data)
        }else{
            reject(err)
        }
      })  
     })
}

function param(data) {
    let url = ''
    for (var k in data) {
        let value = data[k] !== undefined? data[k] : ''
        url += `&${k}=${encodeURIComponent(value)}` 
    }
    return url? url.substring(1) : '' 
}

Second: 接下来可以为每个组件封装一些它获取相关数据的方法:

import jsonp from 'common/js/jsonp'
import commonParams from './config'
export default function getRecommend () {
    const url = 'https://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg'

    const data = Object.assign({}, commonParams, {
        platform:'h5',
        uin: 0,
        needNewCode: 1
    })

    return jsonp(url, data, options)
}

Finally:

最后到组件中引入need.js文件,并创建组件自身的函数,并调用need.js文件中导出的getRecommend()函数;





以上就是自己所学的,流程还有待进一步的熟悉和加强,最好能把jsonp的源码看看,看上去也不多,之后再进行总结与理解。

你可能感兴趣的:(Vue模块的使用)