在React.js和React Native应用程序之间重用代码

时间:2015-07-20 16:51:58

标签: javascript reactjs react-native

我想重用一些从API检索两个应用程序数据的代码。一个是使用React Native的iOS应用程序。另一个是使用React.js的网站。

我最初编写了在构建iOS应用程序时从API检索数据的类。因此,我使用了React Native中提供的fetch方法。

不幸的是,React.js中没有这样的方法。 如果我想重用我的代码,我最好的选择是通过使用方法fetch创建一个类HTTPRequests来调用React Native的fetch方法的调用。 React Native的fetch方法或' $。get'取决于项目使用的lib的方法:React.js或React Native。

我的问题如下:如何检测项目中React.js或React Native的使用情况。我的第一个想法是检测我的JS代码是通过RCTRootView引擎还是浏览器执行的。但我不知道如何做到这一点。

有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

我的建议是将共享逻辑移动到单独的模块(bower,npm,ES6),概括通过fetch polyfill请求数据的方式,并且永远不会在项目中检测React / React.native。当新版本的React / React.native出现时,JS代码检测将使您的代码变得不必要复杂且难以支持。

答案 1 :(得分:1)

我使用React Native的platform-specific extensions功能使用React和React Native构建跨平台应用程序的成功经验。我刚刚描述了如何构建代码以便在博客Code sharing between React and React Native applications

中实现这一点