1.前言
微信小程序应用是独立于微信公众号或微信服务号的本地运行的网络程序应用服务。因为微信小程序应用、微信公众号应用、微信服务号应用的服务都是以网页程序的形式提供的,所以可以使用同一套网页程序。
它们的区别在于微信公众号应用和微信服务号应用在服务器端运行网页(BS架构模式),而微信小程序应用在微信APP端本地运行网页程序,其操作方法类似于本地解析运行。
微信小程序采用本地操作模式,有利于提供更好的服务体验,提供接近原生APP的用户体验。此外,它还具有跨平台、易于发布、下载和升级的特点。是云计算时代新CS架构模式的体现。
1.1.小程序运行环境1.1.1.运行环境
微信小程序运行于多种平台:iOS/微信客户端、微信客户端、PC微信客户端、Mac微信客户端、小程序硬件框架、微信开发者调试工具等。
在不同的运行环境下,脚本执行环境和用于组件渲染的环境不同,性能也不同:
无法开启JIT编译(Just-In-Time),相同条件下的运行性能明显低于其他平台。
1.1.2.平台差异
虽然运行环境很相似,但还是有一些区别:
开发者工具仅供调试,最终效果以客户端为准。
1.2. 支持1.2.1.操作限制
基于安全考虑,小程序不支持动态执行JS代码,即:

1.2.2.标准支持
小程序的JS执行环境在不同平台上执行环境不同,因此不同平台对标准的支持存在差异。
为了尽可能消除这些差异,小程序基础库内置了core-js。 core-js 可以补充平台环境中缺少的标准 API。
需要注意的是,平台对语法支持的差异是无法抹平的。当需要使用一些高级语法(如/)时,需要使用代码转换工具来支持这些语法。
1.3.小程序生命周期
小程序从启动到最终销毁会经历许多不同的状态,小程序在不同的状态下会有不同的表现。
1.3.1.小程序启动
从用户认知来看,广义的小程序启动可以分为两种情况,一种是冷启动微信小程序开发环境过滤,一种是热启动。
从小程序生命周期来看,我们一般所说的“启动”是指冷启动,而热启动一般是指后台切换到前台。
1.3.2.前台和后台
小程序启动后,界面显示给用户,小程序处于“前台”状态。
当用户“关闭”小程序时,小程序实际上并没有关闭,而是进入了“后台”状态。此时小程序仍可运行一小段时间,但部分API的使用会受到限制。背景切换方式包括但不限于以下几种:

当用户再次进入微信打开小程序时,小程序会重新进入“前台”状态。
1.3.3.暂停
小程序进入“后台”状态一段时间(目前为5秒)后,微信会停止小程序JS线程的执行,小程序进入“暂停”状态。此时小程序的内存状态会被保留,但开发者代码的执行会停止,当小程序再次进入“前台”时会触发事件和接口回调。
当开发者使用背景音乐播放、后台定位等能力时,小程序可以在“后台”继续运行,不会进入“暂停”状态
1.3.4.小程序销毁
如果用户长时间没有使用小程序,或者系统资源不足,小程序会被“销毁”,即彻底终止。具体包括以下几种情况:
1.4.小程序更新机制
开发者在管理后台发布新版小程序后,微信客户端将有多次机会检查本地缓存的小程序是否有新版本,并更新小程序的代码包。但是,如果用户有本地历史版本的小程序,此时可能仍会打开旧版本。
2.开发版
微信小程序使用微信官方提供的开发工具开发。
2.1.绑定花生壳代理
花生壳服务器端代码的动态域名为:
2.2.绑定微信小程序
2.3.注册为开发者
登录微信小程序管理平台注册
2.4.开发小程序首页2.4.1.安装微信开发者工具
2.4.2.新建小程序项目
新建项目时不使用云服务,所有后端服务接口使用花生壳的动态域名接口
2.4.3.开发本地接口