一套微信小程序的开发模板

ez-wxlite是一套小程序开发模板,旨在设计一套简洁、高效、可维护的开发框架。

本套模板总体上分为两部分:

  • client:小程序源码部分;
  • server:为本地服务,不是后端服务,主要作用是mock接口以及静态文件服务。

点击这里下载模板:https://github.com/wxlite-plus/ez-wxlite/releases

client部分是框架的核心,设计上分为:

  • req:网络请求;
  • router:路由;
  • config:配置信息;
  • utils:工具集,用于存放一些通用的公共方法。
  • wxs:工具集,wxml相关的一些公共变量及方法。

框架核心代码都包含在client/framework文件夹内,在app.js中一次性引入:

调用patch方法会直接完成App、Page、Component这三个全局方法的代理,并完成相应的注入,所以上面的App({})其实已经是被代理之后的App,在这一实例中我们可以获取到注入的options数据,通过this.$opts获取到:

原小程序的App方法只能在onLaunch中获取到options,代理过后的App,通过将options挂载在实例上,我们可以在所有生命周期里访问到,方便使用,Page同理。

req是wx.request的高级封装,用于发起ajax请求以及文件上传。

wx.request是一个底层api,使用的不便之处在于:

  1. 返回结果比较底层,需要处理statusCode,而开发者往往更关注业务相关的data部分;
  2. 登录机制繁琐,设计上甚至有些反人类;
  3. 不具备良好的接口管理功能,可维护性差;

……

综上所述,wx.request需要一层高级的封装来简化操作,因此有了req,req代理了wx.request,并在这基础上做了一些设计工作,以提供良好的维护性:

  • promisify:支持promise,替代callback的方式;
  • 简化respone:简化返回的数据信息,只保留业务数据;
  • method替代url:使用js api的书写方式来替代直接书写url的方式;
  • 接口缓存:支持便捷的接口前端缓存;
  • 自动登录:登录态过期自动重新登录,过程对开发者透明。

详细内容请浏览:https://github.com/wxlite-plus/mp-req

页面的跳转存在哪些问题呢?

  1. 与接口的调用一样面临url的管理问题;
  2. 参数类型单一,只支持string。

当我们传递的参数argument不是string,而是number或者boolean时,也只能在下个页面得到一个argument.toString()值:

上面这种情况想必很多人都遇到过,而且感到很抓狂,本来就想传递一个boolean,结果不管传什么都会变成string。

我们的解决方案是:利用JSON.stringify+encodeURIComponent和decodeURIComponent+JSON.parse的方式让参数保真。

顺手也替换掉那不好记的navigate api,于是就出现了如下方式:

详细内容请浏览:https://github.com/wxlite-plus/mp-router

server为本地服务,不是后端服务,主要作用是:

  • mock服务:当后端接口未就绪时,使用自定义的数据模拟接口调用;
  • 静态文件服务:开发阶段使用本地静态资源替代线上的cdn资源;
  1. 命令行进入server目录,执行npm包安装:npm install(或者使用yarn);
  2. 执行npm run dev。

done!

mock的配置文件为server/mock/init.js,假设我需要一个获取我的用户信息的接口:

接着我就可以通过访问http://localhost:8080/user/myInfo得到我预设的json。

如果我们想要随意地切换静态资源服务环境,那么我们在使用静态资源的时候就不能hard code,那我们怎么做呢?我们使用wxs来配置静态资源的前缀。

client/wxs这一目录存放的是wxs文件,其中我们预定义了cdnPathTable.wxs,它的含义类似于client/config.apiUrlTable.js,我们定义了local、dev、release三个环境,然后在wxml文件中使用:

这里的wxs和config其实没有什么区别,选择定义在wxs中是因为wxs在wxml中使用十分方便。

为了使开发工作更简单高效,我们没有采用在小程序开发工具以外再搭建一层脚手架的做法,而是尽可能使用现有的工具和环境,借助于强大的vscode,我们还提供了:

  • eslint支持;
  • 借助typescript进行语法提示;

启用eslint功能只需要在根目录下运行npm install即可,typescript主要是实现小程序api的语法提示功能,当然这功能直接使用现有的vscode插件就可以实现,不过我目前没有找到比较好用的~考虑到微信的api文档更新比较频繁,插件的维护速度可能跟不上,所以简单地实现了一个本地化,在开发过程中可以手动补充,将自己常用的api定义好就足以提高效率了。

非常棒的可用于毕设的微信小程序源码

1.校园二手交易小程序源码

源码包括:前端、后端、数据库

后端使用的java开发,mysql数据库

视频演示:https://www.bilibili.com/video/BV1iL411i7og/

2.通用答题微信小程序源码

源码包括:前端、后端、数据库

后端使用的java开发,mysql数据库

视频演示:https://www.bilibili.com/video/BV1AD421J7Zd/

3.垃圾分类小程序

智能垃圾回收小程序,支持拍照识别、语音录入识别,包含垃圾分类题库测试。

云开发版:使用小程序云开发,无需单独搭建服务器。

视频演示:https://www.bilibili.com/video/BV1uj41147kJ/

想开发app、小程序却没有完整源码?来看看全部的完整源码吧

首先 源代码是原创是知识产权是属于你的版权

第二点 可以进行二次开发进行 增加功能 系统优化 完善或丰富 现有系统功能如果没有源代码系统无法修改

第三点 不受开发公司限制 可以占据主动权 如果开发方 在后期对运维或增加功能方面 报价远超市场价 可以拿你的源代码找一家有实力性价比更高的公司 同时也可以让其他公司进行后期的系统维护和升级而不会因此造成整套软件重写所以大家在找开发公司的同时要注意是否会提供源代码这个问题

第四点 源代码用途:

生成目标代码,即计算机可以识别的代码。

对软件进行说bai明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。因此,书写软件说明在业界被认为是能创造优秀程序的良好习惯,一些公司也硬性规定必须书写。

需要指出的是,源代码的修改不能改变已经生成的目标代码。如果需要对目标代码做出相应的修改,必须重新编译。

第五点 源代码好处:

1、可以在源代码的基础上进行二次开发,完善或丰富现有系统功能。

2、参考学习。通过分析源代码,可以学习开发、了解开发者的思路,学习开发者如何通过巧妙的方式、算法解决业务问题,阅读源代码是提高开发水平的快捷方式。

3、拥有源代码,可以占据主动权。如果开发方在后期对运维或增加功能方面,报价远超市场价,委托方有源代码的话,可以考虑更换开发方,而不会因此造成整套软件重写。

爱炎科技公司从2015年成立至今,为各行各业的客户定制开发APP多达300多个,其中行业涉及:直播APP、短视频APP、在线教育APP、智能硬件APP、社交电商APP、在线医疗APP、O2O社区APP等。以及大量的微信小程序模板;民宿类小程序、医疗美容类小程序、社交小程序等等。然而在运营过程中,很多的APP及客户悄然消失了,导致好多APP、小程序虽然开发完成却无力运营,源码大量闲置。

详情如下图:

APP源码列表

小程序源码列表

其中:社区生鲜APP主要功能为:生鲜电商+配送管理+门店管理+销售管理

社区生鲜APP源码

智慧校车APP主要功能为:校园管理+支付+校车+路线+班级等

校车APP源码

仿趣头条APP主要功能为:资讯+直播+视频+消息+支付+自媒体平台

仿趣头条APP源码

在线医疗APP主要功能为:在线问诊+药方+消息+患者管理+医生管理

在线医疗APP源码

早教课程APP的主要功能为:电子绘本+儿歌+视频+等级+朋友圈+社交

早教app源码

定制装修APP的主要功能为:用户端+企业端+在线预约+装修过程管理

土巴兔app源码

相亲交友APP的主要功能为:陌生人交友+相亲+直播+守护等

直播相亲app源码

仿抖音短视频APP源码功能主要为:短视频+直播+消息+直播带货+礼物系统

仿抖音app源码

小程序源码案例:

民宿小程序的主要功能:在线预约民宿+入驻+支付+民宿管理;

民宿小程序源码

会所服务小程序的主要功能为:高端会所点餐+存酒+预约+呼叫服务

会所管理小程序源码

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。