小程序和H5有什么区别

# 小程序和H5有什么区别

小程序

运行于特定的移动软件平台(Wechat/支付宝/字节跳动/QQ/快应用)

不同平台小程序之间语法上与API又有些许差异

如果不使用第三方的开发框架,每个平台都需要单独学习一些东西(有一定的学习成本)

对于用户来说需要先下载一个平台才能使用

没有H5的API丰富,某些功能实现还受一定的限制

发布自己的小程序需要审核

H5

需要考虑各大浏览器兼容性问题

不需要审核,可随时更新

没有特定的推送,推广渠道

• 渲染方式与h5不同,小程序一般是通过Native原生渲染的,但是小程序同时也支持web渲染,如果使用web渲染的方式,我们需要初始化一个webview组件,然后在webview中加载h5页面;

所以当我们开发一个小程序时,通常会使用hybrid的方式,即会根据具体情况选择部分功能用小程序原生的代码来开发,部分功能通过webview加载h5页面来实现。Native与Web渲染混合使用,以实现项目的最优解;

这里值得注意的是,小程序下,native方式通常情况下性能要优于web方式。

• 小程序特有的双线程设计。h5下我们所有资源通常都会打到一个bundle.js文件里(不考虑分包加载),而小程序编译后的结果会有两个bundle,index.js封装的是小程序项目的view层,以及index.worker.js封装的是项目的业务逻辑,在运行时,会有两条线程来分别处理这两个bundle,一个是主渲染线程,它负责加载并渲染index.js里的内容,另外一个是Service Worker线程,它负责执行index.worker.js里封装的业务逻辑,这里面会有很多对底层api调用。

上次更新: 2022/8/26 下午8:00:44