我们有一个使用reactjs开发的小部件的稳定版本 . 我们想开发相同的移动版本 . 使用react native进行开发并在2个应用程序之间共享代码是否更好?或者我们更好地本地开发小部件 .
请记住,我们确实拥有(反应和Android开发)的专业知识,但我们不想投入太多时间再次开发整个应用程序 .
如果我们选择react-native,是否有任何工具/资源可以更快地完成这项工作?
在线资源:
http://jkaufman.io/react-web-native-codesharing/
https://arielelkin.github.io/articles/why-im-not-a-react-native-developer.html
干杯!!!
6 回答
两种流行的选项可以解决网络,iOS,Android和Windows上的代码共享问题
React Native Web - https://github.com/necolas/react-native-web
ReactXP - https://github.com/microsoft/reactxp
以下是https://microsoft.github.io/reactxp/docs/faq.html的优秀摘录,突出了其中的区别 .
ReactXP与React Native for Web有何不同?
React Native for Web是由Twitter工程师开发的开源库 . 我们在React Native for Web可用之前就开始实现ReactXP .
这两项努力背后的目标是相似的,但方法不同 . ReactXP是一个位于React Native和React之上的层,而React Native for Web是React Native的并行实现 - React Native for iOS和Android的兄弟 .
ReactXP通常只公开所有平台上可用的道具,样式属性和API . 如果您写入ReactXP的抽象,您可以高度确信它将以相同的方式在所有支持的平台上运行 . 使用React Native for Web / iOS / Android可以实现相同的目的,但您需要更加小心使用哪些组件,道具和API .
Instagram, Tesla, AirBnB, Discord, Bloomberg都有使用React Native编写的 生产环境 应用程序 . 我认为你已经准备好 生产环境 了 .
虽然React Native可以让你在iOS和Android之间重用代码(我们目前正在为客户构建一个应用程序 - 从外部库中获取 - 在iOS和Android之间重用超过99%的代码),但它不能与React webapps共享代码 .
Facebook使用React Native的理念,而不是 write once, run anywhere ,而不是 learn once, write anywhere .
您绝对可以使用您的设计和架构,但您需要重写大部分代码 . 但它可能比开发两个独立的Java和Obj-C / Swift应用程序更有效 .
您可以查看ReactXP(https://microsoft.github.io/reactxp/),它使用reactjs并做出本机反应来构建跨平台应用程序 .
你当然可以分享存储和网络层,而不是网络和移动反应代码库 .
虽然实际上您只能共享存储层的一部分,但是在移动应用和Web应用的情况下,您可能希望以不同方式获取数据 .
它可以在移动应用和网络应用之间共享 . 您肯定必须再次为移动应用编写组件 . 但您始终可以重用业务逻辑 .
如果您在Web应用程序中使用了React,那么工作就会变得更加容易 . React native的主要危害之一是 State Management . 现在复杂性取决于您的应用程序 . 通常建议将Redux与React Native一起使用 .
真正的问题是你能分享多少代码 . 希望这有帮助 .
现在有一个名为react-native-web的工具,它允许您在Web和移动设备之间共享代码 .
阅读更多:https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
回购:https://github.com/necolas/react-native-web