React JS Web代码可用于使用React Native构建移动应用程序



我正在从事一个宠物项目(Web应用程序),我想知道我是否应该使用React,因为从此代码中创建本机应用程序很容易(如果以后我需要)。

  • ,如果答案是肯定的,那么遵循的最佳做法是什么大多数恢复?

  • 如果答案是否定的,您可以推荐替代方案吗?

有关我情况的更多信息。

我对反应是相对较新的,而我的替代方案将是bootstrap and jquery的良好html。我正在考虑使用ASP.NET MVC和Web API。

在React Web应用程序和React Antive应用程序之间共享应用程序逻辑,同时可以保持每个平台独特的单个组件渲染!

我认为,这是我们提供的一个不错的选择。我将为您提供该方法和一些建议的概述。

在理想的世界中,我们将能够共享代码的100%。据我所知,这是不可能的,但是我们仍然可以分享很多代码。尽管React Native就像React一样,但非常重要的是要注意渲染代码不同。而是诸如<div><span>之类的Web事物,您使用React本机组件,例如<View><Text>和其他内置组件。

但是,在大多数情况下,业务逻辑只是JavaScript,这是我们可以分享的重要事情之一!

计划

基于您使用的通量架构,这意味着您的商店,还原器,操作将共享代码,以及大多数业务逻辑(内部服务或其他任何)以及常数和实用程序。

然后,使用React Native和Web使用React 为每个本机平台专门为每个本机平台编写UI层。不仅因为有必要用反应本机组件替换HTML元素,还因为这些组件可能在移动应用程序上具有截然不同的行为。

一些一般准则/建议

  • 考虑一个良好的体系结构和代码结构,以共享尽可能多的代码(和应用程序逻辑)。尝试将UI演示组件分开(每个平台都不同)。

  • 查看React本地文档中的JavaScript环境细节。使用React Native时,您将在两个环境中运行JavaScript代码:

    • 关于iOS模拟器和设备,Android模拟器和设备。React Native使用JavaScriptCore,这是为Safari提供动力的JavaScript引擎。在iOS JSC上,由于没有iOS应用中的可执行记忆。
    • 使用Chrome调试时,它会在Chrome本身中运行所有JavaScript代码,并通过WebSocket与本机代码进行通信。因此,您正在使用V8。

    尽管两个环境都非常相似,但您最终可能会遇到一些不一致。

  • 考虑共享代码的不同策略。为了访问共享代码,您构建的应用程序不必全部现场在同一代码库或git存储库中。

    更真实地,您将分别托管两个或多个项目,因此NPM软件包是它们之间共享代码的最简单方法之一。

    这很容易,因为制作新软件包并将其设置为每个项目内部的依赖性。对于共享项目的路径,您可以使用git存储库,而不是指向NPM上的公共软件包。

    即使您现在仅构建Web应用程序,您也可以花一些时间思考如何概括一些共享代码,因此将来更容易重复使用它。

这是可能且可行的。您必须对每个平台(Web/Android/ios)都有一个视图,因为每个平台都有您的组件。

业务逻辑必须不在视图中。使用通量可以使用本机轻松使用您的项目,因为IT将API交互移动到数据层,让视图仅为视图。

最新更新