小程序开发指南 | 青训营笔记

218 阅读3分钟
这是我参与「第四届青训营 」笔记创作活动的第5天

什么是小程序

定义:微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出 色的使用体验。 小程序的优点:
  • 便捷性
  • 远好于公众号和H5页面的体验
  • 释放手机内存空间
  • 让手机桌面更加简洁
  • 小程序的MVVM架构

    Vue的MVVM和小程序MVVM对比 MVVM好在哪里?
  • DOM Listeners: ViewModel层可以将DOM的监听绑定到Model层
  • Data Bindings: ViewModel层可以将数据的变量, 响应式的反应到View层 MVVM架构将我们从命令式编程转移到声明式编程
  • 小程序的双线程模型

    微信客户端是小程序的宿主环境,宿主环境为了执行小程序的各种文件:wxml文件、wxss文件、js文件提供了小程序的双线程模型
    双线程模型: WXML模块和WXSS样式运行于渲染层,渲染层使用WebView线程渲染(一个程序有多个页面,会使用多个WebView的线程)。JS脚本运行于逻辑层,逻辑层使用JsCore运行JS脚本。这两个线程都会经由微信客户端(Native)进行中转 交互。
    界面渲染过程
  • 在渲染层,宿主环境会把WXML转化成对应的JS对象;
  • 将JS对象再次转成真实DOM树,交由渲染层线程渲染;
  • 数据变化时,逻辑层提供最新的变化数据,JS对象发生变化比较进行diff算法对比;
  • 将最新变化的内容反映到真实的DOM树中,更新UI;
  • 小程序的启动流程
    下载小程序包 -> 启动小程序 -> 加载解析app.json -> 注册App()【执行App生命周期】 -> 加载自定义组件代码、注册自定义组件 -> 加载解析page.json、渲染层加载渲染page.wxml、逻辑层注册Page()【执行Page生命周期】
    注意事项
    加载规则
    1.小程序启动时,默认会下载主包并启动主包内页面(所以tabBar放主包里面)
    2.用户访问某个分包页面的时候,客户端会把对应包下载下来

    大小限制:
    一个包不能超过2M,所有包加起来不能超过20M
    独立分包
    一种特殊的分包,可以不依赖主包独立运行

    独立分包与其他分包之间相互隔绝,不能相互引用资源

    使用场景
    有的功能不依赖主包即可运行,但是进入小程序时却需要默认下载主包——这时候就该独立分包了
    使用方式:
    需要在app.json对每个包的设置中加上independent字段并设置为true
    预下载
    在进入某个页面时,由框架自动预先下载好之后可能需要的分包,从而优化进入后续分包页面的速度 使用方式:
    在app.json中使用preloadRule字段配置预下载

    一个分包的预下载大小限额:2M,超出的部分会下载失败