ps.*_*ps. 11 web reactjs react-native
我正在研究宠物项目(网络应用程序),我想知道我是否应该使用反应,因为从这段代码创建本机应用程序很容易(将来如果我需要).
如果答案是肯定的,大多数重复使用的最佳做法是什么?
如果答案是否定的,你能推荐一个替代方案吗?
有关我的情况的更多信息.
我的反应相对比较新,而且我的替代方案将是带有bootstrap和jquery的好用的.我正在考虑使用asp.net mvc和web api.
Kal*_*sev 13
在React Web应用程序和React Native应用程序之间共享应用程序逻辑,同时保持每个平台的单个组件呈现是唯一的!
在我看来,这是我们可用的一个很好的选择.我将向您概述该方法和一些建议.
在理想的世界中,我们将能够共享100%的代码.据我所知,这是不可能的,但我们仍然可以分享很多代码.尽管React Native与React类似,但请注意渲染代码是不同的非常重要.相反,web之类的东西,<div>或者<span>你使用React Native组件<View>,<Text>以及其他内置组件.
但是,在大多数情况下,业务逻辑只是JavaScript,这是我们可以共享的重要事项之一!
基于您正在使用的Flux架构,这意味着您的商店,减少器,操作将是共享代码,以及大多数业务逻辑(内部服务或其他)以及常量和实用程序.
然后,将使用React Native为每个本机平台专门编写UI层,使用React为Web编写.不仅因为有必要用React Native组件替换HTML元素,而且因为组件在移动应用程序上可能会有非常不同的行为.
考虑一个好的架构和代码结构,以便尽可能多地共享代码(和应用程序逻辑).尝试分离UI表示组件(对于每个平台,它们将是不同的).
查看React Native文档中的JavaScript环境细节.使用React Native时,您将在两个环境中运行JavaScript代码:
- 在iOS模拟器和设备上,Android模拟器和设备.React Native使用JavaScriptCore,它是为Safari提供支持的JavaScript引擎.在iOS上,由于iOS应用程序中缺少可写的可执行内存,因此JSC不使用JIT.
- 使用Chrome调试时,它会运行Chrome中的所有JavaScript代码,并通过WebSocket与本机代码进行通信.所以你使用的是V8.
虽然两种环境非常相似,但最终可能会出现一些不一致的情况.
考虑共享代码的不同策略.为了访问共享代码,您正在构建的应用程序不必都位于相同的代码库或git存储库中.
更现实的是,您将分别托管两个或更多项目,因此npm包是在它们之间共享代码的最简单方法之一.
这很简单,就像创建一个新包并将其设置为每个项目中的依赖项一样.对于共享项目的路径,您可以使用git存储库而不是指向npm上的公共包.
即使您现在只构建Web应用程序,您也可以花一些时间考虑如何概括一些共享代码,以便将来重用它更容易.
| 归档时间: |
|
| 查看次数: |
2261 次 |
| 最近记录: |