原生的缺点:动态化弱,成本投入大。
针对原生的缺点,产生了几种解决方案
1.H5+原生(Cordova、Ionic、微信小程序)
2.JavaScript开发+原生渲染 (React Native、Weex、快应用)
3.自绘UI+原生(QT for mobile、Flutter)
技术类型 | UI渲染方式 | 性能 | 开发效率 | 动态化 | 框架代表 |
---|---|---|---|---|---|
H5+原生 | WebView渲染 | 一般 | 高 | 支持 | Cordova、Ionic |
JavaScript+原生渲染 | 原生控件渲染 | 好 | 中 | 支持 | RN、Weex |
自绘UI+原生 | 调用系统API渲染 | 好 | Flutter高, QT低 | 默认不支持 | QT、Flutter |
flutter架构
我认为flutter的出现就是为了解决跨平台这个根本问题,同时进而优化H5+原生,渲染迟缓,优化JavaScript+原生渲染,某些场景比如拖动等卡顿的状况,同时也牺牲了动态化作为代价。