从技术上来说React-nativeFlutter有什么区别?

两种技术似乎都在做相对相同的事情,Flutter甚至承认它从React那里得到了启发:faq

当他们列出相同的功能并具有几乎相同的语法(StatefulWidgetComponent类)时,这一点甚至更加明显。

类似于AngularDart是Angular的Dart实现;假设Flutter是React的Dart实现是否正确?

最佳答案

在架构上,React Native(RN)和Flutter非常相似。

Flutter所谓的“小部件”与React的“组件”严格等效。这就是Flutter说它受React启发时的意思。

它们之间的区别在于框架的其他方面:

口译Javascript VS Compiled Dart

Flutter使用Dart,这是一种类型化的语言,可提供“及时”(JIT)和“提前”(AOT)编译(包括摇树)

在开发中,Flutter使用JIT编译来实现热重装。对于生产版本,它使用AOT编译以获得更好的性能。

React-Native使用Javascript增强了一些称为JSX的语法糖。

JSX是另一种语言,它会编译为JS,然后在运行时进行评估。

桥接到 native VS Complete重写

React native建立在native之上。

在React Native中使用按钮或文本时,您正在操纵用于 native Android/iOS应用程序的官方对象。

我们可以将React视为Android/iOS之间用于声明布局的通用语言-但从根本上说,应用程序有所不同,可能存在不一致之处。

这不是真正的跨平台。但同时,它允许与 native 元素更好的互操作性。

flutter 则相反。 Flutter的目标是使用尽可能少的 native 元素。

Flutter向操作系统请求一个窗口,然后使用Dart和Skia(它的c++图形引擎)完全管理其内容。

它具有一些含义:

  • 所有的UI逻辑都必须由Flutter重新实现。无论是滚动,触摸事件,动画还是...
  • 该应用程序完全用Dart编写,甚至深入到底层。这意味着无论平台是什么,执行的代码始终相同。
  • 潜在的任何可以运行Dart代码并创建窗口的东西都可以运行Flutter,而应用程序应该几乎没有任何变化。因此,正在进行Web(Hummingbird),并且可以使用台式机的基本支持。

  • 在某种程度上,我们可以将Flutter与Webview/游戏引擎进行比较,但针对休闲应用进行了优化。

    关于react-native - React Native和Flutter有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54401851/

    10-16 06:02