taiyang2014

封装数据请求

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
                         });
                    }
             });
         }   
    },
 

posted on 2017-08-21 17:50  taiyang2014  阅读(131)  评论(0编辑  收藏  举报

导航