首页 > 解决方案 > React Native 或 Flutter

问题描述

嗨,我想查看一个新框架来开发应用程序。现在我想知道选择哪一个,例如 React Native 或 Flutter。你能给我一些关于选择什么以及它们的优缺点的建议或经验吗?

谢谢!

标签: react-nativeflutterframeworks

解决方案


概括:

React 使用 JS,Flutter 使用 Dart

Flutter 的学习曲线非常陡峭,因为如果您还不了解 Dart,那么您将不得不学习它以及新的框架(和反应式编程)。

对于 React Native,如果你使用过 React 或者只是一般的 JS,我相信你会很容易上手。

建筑学

Flutter 倾向于依赖Google Developers 认可的BLoC 模式。

React Native 依赖于FluxRedux

生态系统

Flutter 于 2017 年 5 月问世,因此它的生态系统不如两年前问世的 React Native。

汇编

Flutter 编译为设备原生代码,您可以在创建 Flutter 项目时更改这些代码。所有这些都在一个线程上完成!对于密集的工作,你可能想要使用Dart Isolate,它在内存上创建一个新的点来做密集的工作,而 Flutter 则在 UI 和其他东西上工作。Dart 专为异步工作负载而设计。Dart 有 Streams 和 Futures(基本上是 JS 中的 Promises)。您可以使用本质上将 Redux 引入 Dart 的包,以允许 Observables(更好的 Promises)。

React Native 不会编译为本地设备代码,而是编译为设备等效代码。JS 在单独的线程上运行,并通过桥与 UI 组件通信。对于异步工作负载,您可以像在 JS 中一样使用 Promises。

文档

就文档而言,React Native 比 Flutter 更易于使用。虽然,Flutter 确实有他们所谓的食谱,并且易于遵循以及代码示例。总的来说,这取决于你。

跨平台

Flutter 允许您为比 React Native 更多的设备制作应用程序。React Native 仅适用于 Android 和 iOS(尽管您可以使用react-native-web制作 Web 应用程序,感谢@VilleKoo),而 Flutter 希望支持桌面、Web 应用程序以及上述 iOS 和 Android 都来自一个代码库令人印象深刻。请记住,网络支持处于测试阶段,桌面应用程序目前还不稳定。

进一步阅读:

https://nevercode.io/blog/flutter-vs-react-native-a-developers-perspective/

https://hackr.io/blog/react-native-vs-flutter

https://hackernoon.com/react-native-vs-flutter-which-is-preferred-for-you-bba108f808


推荐阅读