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

Reuse code between React.js and React Native applications

本文关键字:React 代码 之间 Native js 应用程序      更新时间:2023-09-26

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

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

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

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

有什么建议吗?

谢谢!

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

我有使用 React 和 React Native 使用 React Native 的平台特定扩展功能构建跨平台应用程序的成功经验。我刚刚在一篇博客文章中描述了我如何构建代码以实现这一点 React 和 React Native 应用程序之间的代码共享