这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天
九、跨端技术
- 跨端是什么
- 背景
- 应用场景+各种端的出现(PC、移动、web、IoT等等)
- 出现问题:功能基本一致,但是需要不同的人员完成不同的端研发,造成开发维护成本高
- 目标
- 研发效率高:学习成本低+多端一致性高
- 用户体验好:稳定性高+性能OK
- 动态化:支持动态下发,满足业务需求
- 背景
- 跨端技术方案
- hybrid方案
- 基于WebView,通过JS Bridge把一部分系统能力开放给JS调用
- WebView类似浏览器页面,加了一个中间件
- 原生渲染方案
- 使用JS开发,通过中间层桥接后使用原生组件来渲染UI界面
- 它跟hybrid的最大区别只是渲染方式不同,一个是原生组件,一个是WebView
- React Native:使用React范式,开发跨平台应用(以前只能是跨端页面)
- 使用这个,因为是使用的原生组件,要跟跨端的功能最低水平匹配(一般是移动端),所以功能会受限一些
- 自渲染方案
- 更底层
- 利用Skia重新实现渲染管线,不依赖原生组件
- 代表:Flutter
- 小程序方案
- 使用小程序DSL+JS开发,通过中间层桥接后调用原生能力,使用WebView来渲染UI界面
- 字节小程序
- 逻辑线程和渲染线程分开
- hybrid方案