vue2.0项目中的函数封装和引用。演示通过封装jsonp方法获取QQ音乐数据。
2017-11-17 10:09
1056 查看
最近学习了一下如何用vue2.0开发app。这里只是记录一下学习中遇到的好的方法和知识点,里面用的好多es6语法,我也不是很懂,怕忘了,so 还是再总结一下。
1,首先新建一个jsonp.js 封装一个函数方法。当然前提要在项目中安装jsonp 的依赖,
看下面代码,解释一下,先引入jsonp,接着写了2个函数,一个是jsonp(),另一个是param();
param()是为了把传递过来的参数拼接到url里面,而这个文档默认的是暴露第一函数,看到这个就应该明白,
这里再写一个配置文档config.js 封装几个常量,
2,接着就是引用上面封装好的方法,
首先引入文档
在这个函数中使用上面的常量和函数方法
3,在其他文档继续使用第二步封装好的获取参数的方法。
好了,看着很简单,封装常量和函数方法在其他文档使用。但是,里面很多es6语法,需要多研究。
看下,我打印出来的效果吧。
1,首先新建一个jsonp.js 封装一个函数方法。当然前提要在项目中安装jsonp 的依赖,
npm install jsonp --save
看下面代码,解释一下,先引入jsonp,接着写了2个函数,一个是jsonp(),另一个是param();
param()是为了把传递过来的参数拼接到url里面,而这个文档默认的是暴露第一函数,看到这个就应该明白,
export default function jsonp()而第二个函数是
function param(data)
import originJSONP from 'jsonp' // indexOf('?') 判断url 里面有没有?号,<0 时成立就是没有问号。 export default function jsonp(url, data, option) { url += (url.indexOf('?') < 0 ? '?':'&')+param(data) return new Promise((resolve, reject) => { originJSONP(url, option, (err, data) => { if (!err) { resolve(data) } else { reject(err) } }) }) } //封装 拼接data 到url 的方法 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() : '' }
这里再写一个配置文档config.js 封装几个常量,
export const commonParams ={ g_tk:5381, inCharset: 'utf-8', outCharset:'utf-8', notice:0 } // 设置常量 param export const options = { param:'jsonpCallback' } // 设置常量 错误信息 0 是OK 没有问题的意思 export const ERR_OK =0
2,接着就是引用上面封装好的方法,
首先引入文档
import jsonp from 'common/js/jsonp.js' import {commonParams, options} from './config'
在这个函数中使用上面的常量和函数方法
export function getRecommend() { const url = 'https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg' const data = Object.assign({}, commonParams, { platform: 'h5', uin: 0, needNewCode: 1 }) return jsonp(url, data, options) }
3,在其他文档继续使用第二步封装好的获取参数的方法。
<script type="text/ecmascript-6"> import {getRecommend} from 'api/recommend' import {ERR_OK} from 'api/config' export default{ created(){ this._getRecommend() }, methods: { _getRecommend (){ getRecommend().then((res) => { if (res.code === ERR_OK) { console.log(res.data.slider) } }) } } } </script>
好了,看着很简单,封装常量和函数方法在其他文档使用。但是,里面很多es6语法,需要多研究。
看下,我打印出来的效果吧。
相关文章推荐
- vue使用jsonp抓取qq音乐数据的方法
- Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
- vue2.x 通过后端接口代理,获取qq音乐api的数据
- vue项目中jsonp跨域获取qq音乐首页推荐问题
- WMI获取硬件信息封装函数方法(联想台式机出厂编号 CPUID BIOS序列号 硬盘信息 显卡信息 MAC地址)
- C语言使用scanf函数获取数据后,使用getchar()无法获得字符的处理方法
- 关于JQuery 中$.ajax函数利用jsonp实现Ajax跨域请求ASP.NET的WebService成功获取数据的案例
- C下如何通过scanf()函数获取正确的数据
- 通过extjs获取服务器后台数据演示,很简单,很好学
- java通过url获取页面数据 java解析xml 基金净值接口使用方法
- 通过ioctl途径获取数据的一般方法
- ASP.NET 2.0 客户端无刷新调用服务器端方法获取数据
- 判断基本数据类型和引用类型的封装函数
- 获取客户端ip地址方法和通过curl在命令行提交post数据到服务器
- 通过函数获取系统状态数据
- [Js]封装好的通过className来获取元素的函数
- Matlab函数间通过workspace进行数据共享的方法
- “由于数据存储中不存在项目引用的设备平台,因此无法打开项目。”解决方法
- php中从结果集获取一条数据和所有数据的方法函数
- 数据库存储过程中定义一个变量,通过sql语句在数据表中获取这个变量值的方法。