Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs react js web代码可以用于使用react native构建移动应用程序吗?_Reactjs_Web_React Native - Fatal编程技术网

Reactjs react js web代码可以用于使用react native构建移动应用程序吗?

Reactjs react js web代码可以用于使用react native构建移动应用程序吗?,reactjs,web,react-native,Reactjs,Web,React Native,我正在从事一个pet项目(web应用程序),我想知道是否应该使用react,因为使用此代码创建本机应用程序很容易(将来如果需要的话) 如果答案是肯定的,那么最佳实践是什么 大多数苏苏 如果答案是否定的,你能推荐一个替代方案吗 关于我的情况的更多信息。 我是一个比较新的反应,我的选择将是良好的ol'html与引导和jquery。我正在考虑使用asp.net mvc和web api。在React web应用程序和React本机应用程序之间共享应用程序逻辑,同时保持每个平台的单个组件呈现唯一是可能

我正在从事一个pet项目(web应用程序),我想知道是否应该使用react,因为使用此代码创建本机应用程序很容易(将来如果需要的话)

  • 如果答案是肯定的,那么最佳实践是什么 大多数苏苏

  • 如果答案是否定的,你能推荐一个替代方案吗

关于我的情况的更多信息。


我是一个比较新的反应,我的选择将是良好的ol'html与引导和jquery。我正在考虑使用asp.net mvc和web api。

在React web应用程序和React本机应用程序之间共享应用程序逻辑,同时保持每个平台的单个组件呈现唯一是可能的

在我看来,这是一个很好的选择,我们有。我将给你一个方法的概述和一些建议

在理想情况下,我们将能够100%共享代码。据我所知,这是不可能的,但我们仍然可以共享很多代码。尽管React Native与React类似,但需要注意的是呈现代码不同。您使用React本地组件,如
和其他内置组件,而不是像
这样的web组件

然而,在大多数情况下,业务逻辑只是JavaScript,这是我们可以共享的重要内容之一

计划 基于您正在使用的Flux体系结构,这意味着您的存储、还原器、操作将是共享代码,以及大多数业务逻辑(服务内部或其他)以及常量和实用程序

然后使用React native专门为每个本机平台编写UI层,并使用React专门为web编写UI层。这不仅是因为有必要用React本地组件替换HTML元素,而且还因为这些组件在移动应用程序上可能具有非常不同的行为

一些一般准则/建议
  • 考虑良好的体系结构和代码结构,以便尽可能多地共享代码(和应用程序逻辑)。尝试分离UI表示组件(对于每个平台,这将是不同的)

  • 请查看React原生文档中的。使用React Native时,您将在两个环境中运行JavaScript代码:

    • 在iOS模拟器和设备上,Android模拟器和设备。React Native使用JavaScriptCore,这是支持Safari的JavaScript引擎。在iOS上,由于iOS应用程序中缺少可写可执行内存,JSC不使用JIT
    • 当使用Chrome调试时,它运行Chrome本身中的所有JavaScript代码,并通过WebSocket与本机代码通信。所以您使用的是V8
    虽然这两种环境非常相似,但最终可能会遇到一些不一致的情况

  • 考虑共享代码的不同策略。为了访问共享代码,您正在构建的应用程序不必都位于同一个代码库或git存储库中

    更现实地说,您可能会有两个或多个单独托管的项目,因此npm包是在它们之间共享代码的最简单方法之一

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

    即使您现在只构建web应用程序,您也可以花一些时间思考如何概括一些共享代码,以便将来更容易重用


    • 这是可能的,也是可行的。每个平台(web/android/ios)都必须有一个视图,因为每个平台都有自己的组件


      业务逻辑必须在视图之外。使用flux可以简化本机的项目,因为它将api交互移动到数据层,让视图只是一个视图。

      有,但它的工作方式正好相反。.内置React native并在以后创建网页这是可能的。我建议你像@atlanteh所说的那样阅读,这个框架是存在的。React-Native没有“DOM”,但可以使用DOM创建React-Native中使用的相同组件。(浏览器提供了比React本机组件所支持的更为内置的渲染灵活性)这很好地回答了这个问题,但是仅仅重新使用React JS代码而不是重新编写一堆东西有什么错呢?谢谢。这肯定helps@MartinMazzaDawson这是不可能的,因为web和mobile的渲染代码不同。在移动设备上,我们使用React本地组件,如
      ,以及其他表示移动设备特定项目的内置组件,而不是像
      这样的web组件。