zoukankan      html  css  js  c++  java
  • module.exports小程序模块化,require

    小程序模块化
    可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过 module.exports 或者 exports 才能对外暴露接口。

    tips:exports 是 module.exports 的一个引用,因此在模块里边随意更改 exports 的指向会造成未知的错误。所以更推荐开发者采用 module.exports 来暴露模块接口,除非你已经清晰知道这两者的关系。

    // common.js
    function sayHello(name) {
      console.log(`Hello ${name} !`)
    }
    function sayGoodbye(name) {
      console.log(`Goodbye ${name} !`)
    }
    
    module.exports.sayHello = sayHello
    exports.sayGoodbye = sayGoodbye
    

    在需要使用这些模块的文件中,使用 require(path) 将公共代码引入

    const common = require('common.js')
    Page({
      helloMINA() {
        common.sayHello('MINA')
      },
      goodbyeMINA() {
        common.sayGoodbye('MINA')
      }
    })
    

    tips:require 暂时不支持绝对路径。

    封装!!!

    var project = 'm';        //项目
    var apiHost = 'https://xxx.com/'+project;     //接口地址
    var apiList = {
         "userInfo": "/User/userInfo",
    };
    
    function getData(cmd, data, cb) {
         if (cmd in apiList) {
              var new_cmd = apiList[cmd];
              var hosts = apiHost + new_cmd;
              wx.request({
                   url: hosts,
                   data: data,
                   method: data.method ? data.method : 'GET',
                   header: {
                        "Content-Type": "application/x-www-form-urlencoded"
                   },
                   success: function(res) {
                        typeof cb == 'function' && cb(res.data);
                   },
                   fail: function() {
                        console.log('网络请求失败');
                   }
              });
    
         } else {
              return false;
         }
    }
    
    // 抛出
    module.exports = {
         getData: getData,
    }
    

    引入

    // 相对路径
    var getData = require('../../utils/getData.js');
    

    使用

    getData.getData('userInfo', {
         openid: app.globalData.openid,
         method: "POST"
    }, function(data) {
         if (!data.errno) {
              that.setData({
                   userInfo: data.userInfo,
              })
         } else {
             // 提示
         }
    })	
    
  • 相关阅读:
    go正则解析log文件
    go的堆排序
    golang实现websocket
    golang接口
    erlang时间操作
    golang函数
    golang for循环
    golang 条件语句if,switch
    golang内建变量类型
    区间存在幂个数
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/10542483.html
Copyright © 2011-2022 走看看