• 封装数据请求


    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
                             });
                        }
                 });
             }   
        },
     
  • 相关阅读:
    Processing编程【2】
    哈工大锐捷网络处理问题
    processing编程【1】
    verilog入门知识【2】
    数字电路与逻辑设计知识清单【一】
    四位密码锁*电子密码锁的设计
    verilog入门知识【1】
    【Android】入门的一些知识。
    Andriod 入门
    关于Hibernate和Strtus2的xml提示问题
  • 原文地址:https://www.cnblogs.com/tian-sun/p/7405827.html
Copyright © 2020-2023  润新知