访问API数据与ES6在小程序中的应用

看待组件的两种观点

组件复用

代码分离-(特别重要)

  • 不能在一个页面写所有的代码,代码分离具有很强的可读性、可维护性

Blink Api 介绍与测试API

url前缀以bl.7yue.pro/v1开头

使用开发者key(appkey)访问API

  • 在请求头的header里面携带appkey
  • 将appkey做为请求参数

状态码和错误码


生命周期函数

小程序内部自己调用

名字是固定的

  1. page({
  2. data: {},
  3. onLoad: function(option){},//监听页面加载,用于获取服务器数据
  4. onReady: function(){},//监听初次渲染完成
  5. onShow(){},//监听页面显示
  6. onHide: function(),//监听页面隐藏
  7. onUnload: function(){},//监听页面卸载
  8. onPullDownRefresh: function(){},//监听用户下拉动作
  9. onReachBottom: function(),//上拉触底事件的处理函数
  10. onShareAppMessage: function(){}//分享操作函数
  11. })

wx.request-4xx状态码不会执行fail

注意:服务器返回的数据都会是success,当网络中断时才会走fail


访问API获取数据

  1. wx.request({
  2. url: 'xxx',
  3. header: {
  4. appkey: 'xxx'
  5. }
  6. })

同步、异步与回调函数

小程序里面的request都是异步的,它的优势是性能很高,但调试编程都比较难


ES6箭头函数与this指代

  1. success:(res)=>{
  2. console.log(this.data.count);
  3. }
  1. let that = this;
  2. ...
  3. success: function(){
  4. console.log(that.data.count);
  5. }

正确理解Promise

正确的使用场景:异步嵌套


ES6 const常量

配置文件一般用const定义

  1. const config = 2;
  2. config = 3;//报错
  3. config.appkey = 1//不报错,因为没有修改config的内存地址

ES6 Module export 与 import

在类里面定义方法的写法

  1. import {config} from 'xxx';
  2. class HTTP{
  3. request(param){
  4. }
  5. }
  1. export const config = {
  2. }
  3. const config = {}
  4. export {config}

HTTP类的封装与ES6 startsWith与异常处理

startsWith的用法

  1. success: (res)=>{
  2. let code = res.statusCode.toString();
  3. if(code.startsWith('2')){
  4. }else {
  5. //错误处理
  6. }
  7. }

错误处理

  1. const tips = {
  2. 1: '抱歉,出现一个错误'
  3. 1005: 'appkey无效',
  4. 3000: '期刊不存在'
  5. }
  6. class HTTP{
  7. request(param){
  8. ...
  9. }
  10. _show_error(error_code){
  11. if(!error_code){
  12. error_code = 1;
  13. }
  14. wx.showToast({
  15. title: tips[error_code],
  16. icon: 'none',
  17. duration: 2000
  18. })
  19. }
  20. }

小程序开发-7-访问api数据与ES6在小程序中的应用的更多相关文章

  1. 支付宝小程序开发——获取位置API没有城市区号的最佳处理方案

    前言: 需要对城市区号进行判断,但是支付宝小程序提供的my.getLocation() API返回的数据中只有6位的城市行政代码,诸如:深圳(440300),并没有区号(0755),那么怎么办呢? 需 ...

  2. 小程序开发总结一:mpvue框架及与小程序原生的混搭开发

    mpvue-native:小程序原生和mpvue代码共存 问题描述 mpvue和wepy等框架是在小程序出来一段时间之后才开始有的,所以会出现的问题有:需要兼容已有的老项目,有些场景对小程序的兼容要求 ...

  3. Facebook再现丑闻,约100位应用程序开发人员偷看用户数据

    Facebook今天披露了另一起安全事件,承认大约100名应用程序开发人员可能不正确地访问了某些Facebook组中的用户数据,包括他们的姓名和个人资料图片. 在周二发布的博客文章中,Facebook ...

  4. 【Abode Air程序开发】移动设备、桌面和浏览器应用程序开发的差异

    移动设备.桌面和浏览器应用程序开发的差异 在移动设备应用程序中使用 Spark 和 MX 组件的限制 移动设备应用程序在性能方面的注意事项 浏览器  将应用程序部署为 SWF 文件,以用于在浏览器中运 ...

  5. 为小程序开发创建本地mock数据服务器

    开发时使用easy-mock的服务,不是大厂就不是大厂,实在恶心,每天都会有卡的这么一段时间 于是,自己建个本地mock服务算了,想使用express 但是必须把json数据里面的不同对象,分配到不同 ...

  6. 微信小程序开发-易源API的调用

    起因:在开发一款旅游类微信小程序时,需要接入大量的景点信息,此时可以选择自己新建数据库导入数据并读取,但是对于我来说,因为只有一个人,数据库还涉及到需要维护方面,选择调用已有API. 过程:首先查阅微 ...

  7. 微信小程序开发3之保存数据及页面跳转

    第一  保存本地数据 1.异步保存本地数据 wx.setStorage({ key:keyStr, data:dataStr, success: function(e){}, fail: functi ...

  8. python web开发-flask访问请求数据request

    Request对象在web应用的开发中是一个非常重要的对象,主要用来获取用户发来的请求数据. 常用属性参考:http://docs.jinkan.org/docs/flask/api.html#fla ...

  9. AIR 程序开发系列 之五 保存数据的几种方式

    Local SharedObject 这种方法比较简单方便的保存少的数据到到设备中.你不用自己去管理这些数据,设备会自动管理他. SharedObject 在 flash.net 包中,继承自Even ...

随机推荐

  1. Android(java)学习笔记15:匿名内部类实现多线程

    1. 使用匿名内部类实现多线程 二话不说,首先利用代码体现出来,给大家直观的感觉: package cn.itcast_11; /* 4 * 匿名内部类的格式: 5 * new 类名或者接口名() { ...

  2. [19/03/21-星期四] 异常(Exception) (一)

    一.引言 在实际工作中,我们遇到的情况不可能是非常完美的.比如:你写的某个模块,用户输入不一定符合你的要求;你的程序要打开某个文件, 这个文件可能不存在或者文件格式不对 ,你要读取数据库的数据,数据可 ...

  3. listBox获取项的方法

    获取所有项 ; i < LB.Items.Count;i++ )2 {3 str_arr.Add(LB.Items[i].ToString()); 4 } 获取指定项 string str=LB ...

  4. 2017.9.5 Java知识点总结

    1.*程序的数据操作往往都在内存中操作的,也就是说数据运算都在内存中完成. 2.*什么是变量? --变量就是内存中的一块用来存放数据的存储单元. --变量中的值可变 --我们通过变量名就可以找到内存中 ...

  5. springmvc时间(date)无法转入后台(@DateTimeFormat+@JsonFormat(GMT+8))

    spring时间(date)无法转入后台 Type Status Report Description The server cannot or will not process the reques ...

  6. Linq 集合比较

    List<RemindTbl> l_lstRemind = (from x in RemindTbl where (from y in RemindTblOld where x.Atten ...

  7. papers-06-02

    午睡被同事吵醒,只好干活.看到微信公众号有一篇文章说老朋友呢,点进去发现原来相关的工作好多,而且好新好细致. 微信的文章可以见这里: 探究最陌生的老朋友Softmax 里面的几篇文章可以看看. Lar ...

  8. mysql复制表数据,多表数据复制到一张表

    对于mysql 复制表数据可以使用 insert into select 方式 示例: $sql="insert into icarzoo.provider(providerId,provi ...

  9. DB2表空间重定向恢复数据库实战

    DB2的备份恢复有点坑,当源系统和目标系统的路径设置不同时,要手动进行重定向恢复,本文是我一次实战操作之后总结的过程,仅供参考. 一.发出重定向恢复命令 DB2 RESTORE DB TO " ...

  10. 基于 UIImagePickerController 的拓展封装 - iOS

    基于 UIImagePickerController 的拓展,分别支持调用相机.相册的功能,其中相机可以设置默认调用前后摄像头; 简单对此进行了封装和实现,其中还有很多点可以继续挖掘和优化,该版本具体 ...