跨平台解决方案 | 前端基础知识

490 阅读2分钟

跨平台解决方案

  • 跨平台解决方案简介

  • flutter、rn、uni-app比较

    • 在3大主流渲染引擎里,webview、react native/weex、flutter,复杂度依次降低,渲染性能依次上升。(uni-app是双渲染引擎,webview和weex都内置了,随便开发者使用切换)

    • flutter的性能高,除了简单严格,还有一个特点,就是逻辑层与视图层统一,运行在同一套dart虚拟机下。

    性能上的主要问题是,rn、weex的js引擎和原生渲染层是两个运行环境。当js引擎联网获取到数据后,通知原生视图层更新界面时,有一个跨环境的通信折损。同样,当用户在屏幕上操作原生视图层时,要给js引擎发送通知,也会产生通信折损。通信折损其实普遍存在于所有逻辑和视图分离的框架中,包括各家小程序也有这个问题。

    • 动态性

      webview、rn/weex,都有一个特点,可以远程动态载入js代码,可以更新本地的js代码。前端开发者认为动态性是天经地义的,但其实flutter并不支持。

      flutter是有编译优化概念的,如果它提供动态性支持,会影响它的性能。

      除了flutter,rn/weex/uni-app都可以动态热更新。

前端基础知识