博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
封装数据请求
阅读量:6852 次
发布时间:2019-06-26

本文共 1766 字,大约阅读时间需要 5 分钟。

1: 创建api.js
const api = {
    top: 'https://api.douban.com/v2/movie/top250',
     detail: 'https://api.douban.com/v2/movie/subject/',
     hot: 'https://api.douban.com/v2/movie/in_theaters',
     search: 'https://api.douban.com/v2/movie/search'
}
module.exports = api;
2: 在app.js中创建封装请求数据的方法
const conf = {
 
    // 全局数据对象与方法(整个应用程序共享)
 
    globalData: {
        hasLogin: false,
    }, 
 
    fetch(url,data, callback) {
        wx.request({
            url,
            data: data,
            header: {
                'Content-Type': 'application/json'
            },
            success(res) {
                callback(null, res.data);
            },
            fail(e) {
                callback(e);
            }
        })
    },
 
    // 程序启动时触发一次
    onLaunch() {
        console.log('App Launch');
    },
 
    // 当程序进入前台状态时触发
    onShow() {
        console.log('App Show');
    },
 
    // 当程序进入后台状态时触发
    onHide() {
        console.log('App Hide');
    }
};
 
// App() 函数创建应用程序对象
App(conf);
3: 在子页面中调用封装的方法请求数据
import API from "../../api/api.js";
const app = getApp();
const conf = {
    data:{
        title:'正在拼命加载中...',
        movies:[],
        loadding:true
    },
    onLoad (){
        app.fetch(API.hot,{},(err,data) => {
             this.setData({
                 title:data.title,
                 movies: data.subjects,
                 loading: false
             })
        })
    },
    onReady(){
        wx.setNavigationBarTitle({
          title: '热映',
        });
    }
};
Page(conf);
4: 带参数请求数据
 //上拉加载更多数据
    downLoad:function(e) {
        var self = this,
            nextPage = self.data.nextPage,
            category = self.data.category,
            tabIndex = self.data.tabIndex,
            tipShow  = self.data.tipShow,
            pageIndex = Number(self.data.pageIndex),
            data = {
                  nextPage : nextPage,
                        ti : tabIndex,
                        ft : category,
                      page : pageIndex 
              };
         if(!tipShow) {   
//判断是否有更多数据
            app.requestData(API.listPage,data,(err, data) => {
                    if(data != null) {
                            var resData = data.lst,
                               nextPage = JSON.stringify(data.nextPage);
                            self.setData({
                                pageIndex : pageIndex + 1,
                                 nextPage : nextPage,
                                     list : self.data.list.concat(self.dataRead(resData))
                            });
                    } else {
                             self.setData({
                             tipShow : true
                         });
                    }
             });
         }   
    },
 

转载于:https://www.cnblogs.com/tian-sun/p/7405827.html

你可能感兴趣的文章
iOS开发 图形变换-做一个正方体
查看>>
jhead命令详解
查看>>
OC中initialize方法和init方法的区别
查看>>
一些不可思议的小问题
查看>>
界面间传值
查看>>
3.vsphere client的安装
查看>>
Linux实现最常用的磁盘阵列-- RAID5
查看>>
简单的菜单 menu
查看>>
Intellij Idea 2017创建非Maven web项目使用tomcat部署实战
查看>>
工程DHCP配置
查看>>
GIL(全局解释器锁)与互斥锁
查看>>
我的友情链接
查看>>
Git常用操作及分支
查看>>
关于一种求最大公约数的算法的分析与证明
查看>>
微信授权莫名创建用户数据失败的原因
查看>>
网络高手修身
查看>>
JavaWeb综合案例-键盘模拟
查看>>
Android Day03-SQLite数据库操作及ListView详解
查看>>
Looking for APAC Operations IT XML Database Developer in Shenzhen and Hongkong
查看>>
Myeclipse常用快捷键
查看>>