# 小程序
文档: https://developers.weixin.qq.com/miniprogram/dev/framework/
# 背景
2015 年初,微信发布了一整套网页开发工具包,称之为 JS-SDK,开放了拍摄、录音、语音识别、二维码、地图、支付、分享、卡券等几十个 API。给所有的 Web 开发者打开了一扇全新的窗户,让所有开发者都可以使用到微信的原生能力,去完成一些之前做不到或者难以做到的事情。
JS-SDK 解决了移动网页能力不足的问题,但是 JS-SDK 的模式并没有解决使用移动网页遇到的体验不良的问题。例如白屏问题。后面设计了 JS-SDK 的增强版本,其中有一个重要的功能,称之为“微信 Web 资源离线存储”。但是效果不佳。
小程序就是为了解决上面的问题, 小程序有如下特点:
- 快速的加载
- 更强大的能力
- 原生的体验
- 易用且安全的微信数据开放
- 高效和简单的开发
# 小程序和 H5 开发的区别
网页开发渲染线程和脚本线程是互斥的, 而在小程序中,二者是分开的,分别运行在不同的线程中。
网页开发者可以使用浏览器暴露出来的 DOM API; 小程序的逻辑层和渲染层是分开的,所以缺少相关的 DOM API 和 BOM API。同时 JSCore 的环境同 NodeJS 环境也是不尽相同,所以一些 NPM 的包在小程序中也是无法运行的。
网页开发者面对的环境是各种浏览器,PC 端需要面对 IE、Chrome、QQ 浏览器等,在移动端需要面对 Safari、Chrome 以及 iOS、Android 系统中的各式 WebView 。小程序开发过程中需要面对的是两大操作系统 iOS 和 Android 的微信客户端,以及用于辅助开发的小程序开发者工具
网页开发只需要使用到浏览器,IDE 编辑器即可。小程序需要经过申请小程序帐号、安装小程序开发者工具、配置项目等等过程方可完成
# 全局配置 app.json
https://developers.weixin.qq.com/miniprogram/dev/framework/config.html
app.json 是当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、底部 tab 等。
# 工具配置 project.config.json
https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html
通常大家在使用一个工具的时候,都会针对各自喜好做一些个性化配置,例如界面颜色、编译配置等等,当你换了另外一台电脑重新安装工具的时候,你还要重新配置。
考虑到这点,小程序开发者工具在每个项目的根目录都会生成一个 project.config.json,你在工具上做的任何配置都会写入到这个文件,当你重新安装工具或者换电脑工作时,你只要载入同一个项目的代码包,开发者工具就自动会帮你恢复到当时你开发项目时的个性化配置,其中会包括编辑器的颜色、代码上传时自动压缩等等一系列选项。
# 页面配置 page.json
https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#页面配置