小程序初步了解

本文首发于个人博客 : https://ityongzhen.github.io

前言

小程序开发与网页开发有很大的相似性

  • 在小程序开发中
    • 编写样式时建议多使用 flex 布局
    • 支持 TypeScript
    • 也可以自行搭建less、sass开发环境

小程序开发 vs 网页开发

  • 网页开发中的渲染线程和脚本线程是互斥的,长时间的脚本运行可能会导致页面失去响应

  • 网页开发者可以使用到各种浏览器暴露出来的DOMAPI,进行DOM选中和操作

  • 在小程序中,页面渲染和业务逻辑是分开的,分别运行在不同的线程中

    • 逻辑层运行在JSCore中,并没有一个完整浏览器对象,因而缺少相关的DOMAPI和BOMAPI
    • 因此非常熟悉的一些库,例如jQuery、Zepto等,在小程序中是无法运行的
    • 同时JSCore的环境同NodeJS环境也是不完全相同的,所以一些NPM的包在小程序中也是无法运行的
  • 小程序的性能介于纯网页开发与原生(native)开发之间

小程序的运行环境

运行环境 逻辑层 渲染层
iOS JavaScriptCore WKWebView
Android V8 chromium定制内核
开发者工具 NWJS ChromeWebView

小程序 vs APP

  • 安装使用

    • 小程序:无需安装、无需卸载、简单易用、占用内存较小
    • APP:需要主动联网下载安装APP、不想用了需要主动卸载
  • 开发

    • 小程序:跨平台、开发门槛低、开发周期短、开发成本低(对初创企业来说,是个很好的选择)
    • APP:开发成本高、每一个平台都要维护一套代码(目前也有ReactiveNative、Flutter等跨平台方案)
  • 发布上线

    • 小程序:提交到微信公众平台审核
    • APP:提交到应用商店审核(Apple的AppStore常有审核不通过的情况,审核周期也较长
  • 其他

    • 小程序用户体验、功能丰富度、开放性不如APP

相关链接

(官方开发工具不太好用,可以选择VS Code等)

注册小程序

开源库

UI组件库

QQ交流群:592831498

参考资料:https://ke.qq.com/course/435191