封装就是把实现某 功能 的代码拿出来做为单独的函数, 在不同的地方可以直接使用

封装函数最大好处就是可以避免代码的重复书写, 从而提高效率

如果某功能要经常使用, 则应该考虑将这个功能封装为函数, 否则用一次这个功能就得写一次该功能的代码

小程序中的封装, 也就是js封装

1.单独创建一个js文件, 不用创建其它的wxml, wxss, json文件

2.书写js内容, 这仅仅是一个js文件, 不需要使用Page()注册

/**commons.js文件 */// 定义的常量
var URL = 'http://127.0.0.1:4444/';// 定义的函数
var concatUrl = function (url) {return URL + url;
}/****************************************************/
// 将下面两个变量暴露出来
// 只有暴露出来的变量外部才能引用
// model.exports一般是放在js文件的最后面, 以防止变量未定义时, 就向外面暴露
module.exports = {URL : URL,      // 前面一个是外部引用时使用的名称, 后一个是本js中变量的名称geRealtUrl: concatUrl
}

3.在任意js文件中使用封装的函数

/**index.js */// 在此使用require引入目标js文件, 用变量_js表示
// 因此commons.js文件相当被抽象为了一个对象 : _js
var _js = require("../../commons/utils/commons.js");Page({data: {},onLoad: function() {// 使用对象 _js 调用它里面已暴露的变量var url = _js.geRealtUrl("adrress");console.log(url);console.log(_js.URL);}
})

从这里面可以看出:使用对象_js可以调用commons中已暴露的变量

而不仅仅是函数, 如这里使用_js.URL 得到的是commons.js中的常量

因此可以考虑将常量放入这样的js文件中

例:

在项目中不可避免地要使用登陆功能, 而登陆功能要使用的地方很多

比如要执行收藏,支付等功能之前都是需要用户登陆的

如果在执行这些功能的时候, 检测到用户没有登陆或登陆状态不合适, 需要登陆或重新登陆

则可以直接调用封装好的登陆功能

/**utils.js */// 登陆功能
var login_util = function () {wx.login({success: function(res) {if (res.code) {//发起网络请求wx.request({url: 'http://127.0.01:4444/login',   // 开发者服务器中的请求urldata: {code: res.code}})} else {console.log('登录失败!' + res.errMsg)}}});
}// 将变量暴露出来
module.exports = {login_util: login_util
}

这里说明一下: url: 'http://127.0.01:4444/login 测试的时候不要使用https请求

除非做了服务器端已ssl化, 否则会报错: Invalid character found in method name. HTTP method names must be tokens

/**login.js */
var loginUtil = require("../../commons/utils/commons.js");
Page({data: {},login: function() {loginUtil.login_util();  // 直接使用封装的登陆}
})

有时候需要检测session_key是否有效, 如果过期了, 就要重新登陆

那么可以直接把检测session_key这个操作给封装了:

/**utils.js */// 登陆功能
var login_util = function() {wx.login({success: function(res) {if (res.code) {//发起网络请求wx.request({url: 'http://127.0.01:4444/login', // 开发者服务器中的请求urldata: {code: res.code},success : function(res) {console.log(res.data);}})} else {console.log('登录失败!' + res.errMsg)}}});
};// 检测session_key, 如果过期重新登陆
var checkSession_util = function() {wx.checkSession({success: function(e) {console.log("未过期");},fail: function() {login_util();}})
}// 将变量暴露出来
module.exports = {login_util: login_util,checkSession_util: checkSession_util
}

这样封装以后, 要直接登陆:调用login_util, 要检测session_key登陆则使用checkSession_util

小程序笔记 -- 封装函数相关推荐

  1. 微信小程序判断服务器返回值,让微信小程序内置函数返回promise的方法

    Promise API const promisic = function (func) { return function (params = {}) { return new Promise((r ...

  2. 微信小程序使用云函数进行mysql操作

    微信小程序使用云函数进行mysql操作 其他操纵数据库方式的一些问题 准备工作 云函数代码 调用云函数时候的代码 最后还需要注意的一些小事情: 其他操纵数据库方式的一些问题 现在使用小程序,对数据库的 ...

  3. wx小程序笔记(2)

    wx小程序笔记 第三章:常用组件 第一节:scroll-view组件 view: scroll-view: 设置横向滚动: 设置竖向滚动: scrolltoupper和scrolltolower事件: ...

  4. python写的小程序怎么封装_Promise实现微信小程序接口封装过程

    Promise实现微信小程序接口封装过程 发布时间:2020-06-15 13:40:43 来源:亿速云 阅读:419 作者:鸽子 相信很多开发者都遇到过回调地狱的问题.由于微信小程序的API基本都是 ...

  5. wx小程序笔记(1)

    wx小程序笔记 第一章:小程序前奏 第一节:账号和软件 第二章:小程序基础 第一节:项目结构 第二节:配置 第三节:WXML语法 数据绑定(js数据) 条件渲染(判断) 列表渲染(循环) wx:key ...

  6. 小程序promise封装post请求_微信小程序promise封装get/post请求

    微信小程序promise封装get/post请求 2020-07-04 20:42:49 微信小程序promise封装get/post请求 叶子兔 2018-10-10 08:55:30  1056  ...

  7. 小程序简单封装 request 请求

    我在这里做了详细的介绍 : 小程序简单封装 request 请求 转载于:https://www.cnblogs.com/biangz/p/9984340.html

  8. 微信小程序之回调函数

    微信小程序之回调函数 1.首先什么是回调函数? 在经历一系列研究之后,我总结了一下,就是A函数作为B函数的参数,B函数执行完之后将返回的结果作为A函数的参数,再执行A函数.听起来很难懂,那就举个栗子吧 ...

  9. 微信小程序如何封装自己的组件?

    在现在前端领域,最常见的话语就是组件化.工程化的内容.所有的框架都在朝着这方面发展.作为前端生态中的新兴热人物小程序的出现,同样支持组件化开发. 在我们的日常开发中,可以封装一些常用的组件达到复用效果 ...

最新文章

  1. 对Android 开发者有益的 40 条优化建议(转)
  2. 请你简单介绍一下ArrayList和LinkedList的区别及大数据量情况下的插入效率对比
  3. python案例教程黄蔚答案_Python编程案例教程
  4. 计算机算法对程序设计的作用,算法计算机论文,关于数学算法对计算机编程优化相关参考文献资料-免费论文范文...
  5. python用turtle画菱形_使用 Python Turtle 设计简单而又美丽的图形
  6. 1.1 项目过程中遇到date类型插入数据库的问题及解决方法
  7. TCL语言语法简介(上)
  8. 优雅的开发Swift和Objective C混编的Framework
  9. 艾伦·麦席森·图灵——如谜的解谜者
  10. Windows11/10 环境下安装Madagascar (WSL Ubuntu)
  11. java多态的三种表现形式
  12. android项目学习心得(全源导航)
  13. ng6的ng-template的一个用法
  14. JavaScript——ES8新特性
  15. vue+播放直播视频流(websocket的流文件)
  16. java基于微信小程序的培训机构报名作业管理系统 uniapp 小程序
  17. 程序猿要chatpgpt干掉了?
  18. 《Python程序设计》实验四 Python综合实践实验报告
  19. 天价耶稣像是达·芬奇画的吗?美国夫妇开发AI程序,CNN检测艺术伪造
  20. php 编写购物车程序,php 购物车程序_PHP教程

热门文章

  1. HDU 4514 湫湫系列故事——设计风景线 (并查集)
  2. C# 实现像QQ一样隐藏窗体
  3. java实现的FTP上传下载客户端
  4. 微信的支付(二维码,APP)
  5. 游戏里面的英雄是怎么做的?
  6. 【学习】关于网站中图片的各类交互
  7. 发光二极管限流电阻(学习笔记)
  8. 【报告分享】2020小红书年中美妆洞察报告.pdf(附下载链接)
  9. Qt(C++)入门学习
  10. 2021年研究生入学考试总结和复试冲刺复习计划