微信小程序开发——函数方法定义

WeChat小程序交流(QQ群:769977169

微信小程序里的事件绑定,即方法定义,有三种情况。

情况1 

可以在当前xxx.js文件里直接定义,并使用,如下代码示例:

searchClick: function(even) {
    console.log(this.data.expressNumber)

    // 方法1 直接写请求方法
    if (this.data.expressNumber.length == 0)
    {
      wx.showToast({
        title: '请输入快递单号',
        image: '/images/icon/error.png',
      });

      return;
    }

    wx.showLoading({
      title: '请稍后',
    })

    wx.request({
      url: 'http://apis.baidu.com/kuaidicom/express_api/express_api?muti=0&order=desc&nu='+this.data.expressNumber,
      header: {
        'apikey': '2e24c33be1e7f7dafebc496c07441138'
      },
      success: function(res) {
        console.log("查找成功:");
        console.log(res);
        wx.hideLoading();
      },
      fail: function(res) {
        console.log("查找失败:");
        console.log(res);
        wx.hideLoading();
      }
    })
}

情况2

可以在app.js文件里定义,然后在被使用的文件中调用,如下代码示例:

在app.js中的定义

App({

  ......

  // 查询方法
  searchExpressInfo: function(expressNumber, callBack) {
    if (expressNumber.length == 0)
    {
      wx.showToast({
        title: '请输入快递单号',
        image: '/images/icon/error.png',
      });

      callBack(null);
      return;
    }

    wx.showLoading({
      title: '正在查找',
    });

    wx.request({
      url: 'http://apis.baidu.com/kuaidicom/express_api/express_api?muti=0&order=desc&nu=' + expressNumber,
      header: {
        'apikey': '2e24c33be1e7f7dafebc496c07441138'
      },
      success: function (res) {
        console.log("查找成功:");
        wx.hideLoading();
        // 回调
        callBack(res);
      },
      fail: function (res) {
        console.log("查找失败:");
        wx.hideLoading();
        // 回调
        callBack(res);
      }
    })
  }
})

在xxx.js中的使用,注意:使用app.js中定义的方法或属性时,必须先获取全局变量var app = getApp()

var app = getApp()

Page({

  .....

  searchClick: function(even) {
    console.log(this.data.expressNumber)

    // 方法2 调用在app.js中的封装方法
    app.searchExpressInfo(this.data.expressNumber, function(res){
      console.log(res);
    })
  }
})

情况3

在自定义的工具类文件中定义方法,然后在需要使用的文件中调用。如在util.js文件中定义,然后在xxx.js中使用。注意:在util.js中定义的方法,需要通过module.exports={xxxMethord: xxxMethord}公开暴露出来,否则被调用时识别不出来会出现;同时,在xxx.js文件中使用时,需要通过require("路径/util.js")导入util.js文件,再进行调用。

在util.js中的定义

module.exports = {
  formatTime: formatTime,
  request: request
}

// 请求方法
function request(url, header, params, callBack) {

  wx.showLoading({
    title: '请稍后',
  })

  wx.request({
    url: url,
    header: header,
    success: function(res) {
      wx.hideLoading();
      callBack(res);
    },
    fail: function(res) {
      wx.hideLoading();
      callBack(res);
    }
  })
}

在xxx.js中的使用

var util = require("../../utils/util.js")

Page({

  ......

  searchClick: function(even) {
    console.log(this.data.expressNumber)

    // 方法3 调用在util.js中的封装方法
    if (this.data.expressNumber.length == 0) {
      wx.showToast({
        title: '请输入快递单号',
        image: '/images/icon/error.png',
      });

      return;
    }
    var url = 'http://apis.baidu.com/kuaidicom/express_api/express_api?muti=0&order=desc&nu=' + this.data.expressNumber;
    var header = {'apikey': '2e24c33be1e7f7dafebc496c07441138'};
    var params = null;
    util.request(url, header, params, function(res){
      console.log(res);
    })
  }
}

其它注意事项

1、在util.js中定义后,如果未通过moudle.exports公开的话,会报错,如下所示


2、util.js的方法被调用时,如果引用require的路径不正确,会报错,如下所示



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值