从技术上来说React-native和Flutter有什么区别?
两种技术似乎都在做相对相同的事情,Flutter甚至承认它从React那里得到了启发:faq
当他们列出相同的功能并具有几乎相同的语法(StatefulWidget
与Component
类)时,这一点甚至更加明显。
类似于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++图形引擎)完全管理其内容。
它具有一些含义:
在某种程度上,我们可以将Flutter与Webview/游戏引擎进行比较,但针对休闲应用进行了优化。
关于react-native - React Native和Flutter有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54401851/