是否有可能设置一个项目,该项目的代码既可用于React本地(Mobile)+ React(web),也可在平台之间进行分解,但UI部分除外。
使用NativeScript使用这种种子做了类似的事情,它支持本地应用程序和web应用程序之间的代码共享( UI层除外)。寻找类似的反应+反应本土化。
如果你知道任何这样的种子反应本机+角,如果有,请分享。
发布于 2018-02-07 00:20:29
Jonathan有一篇关于如何设置它的好文章:http://jkaufman.io/react-web-native-codesharing/
基本策略是为每个平台(android/ios/web)设置一个不同的入口点(index.js)。然后,大部分非呈现代码可以驻留在共享的app
或common
文件夹中。但是,您仍然需要隔离您的呈现代码(即View
、div
等的使用),因为这将因平台而异。
请注意对这篇文章的评论,因为对于这种方法的缺陷有一些很好的讨论。示例:
通过在本地和web之间共享公共package.json,您已经通过它们的共同依赖将它们粘合在一起,这是最重要的依赖关系。假设您升级到了依赖于>= react@16的react本机版本,但是您的web应用程序依赖于依赖于=< react@15的其他库。
发布于 2018-02-05 16:06:51
您可以尝试使用反应-本土化,但是imho您应该创建两个不同的项目,隔离和复制两者都可以使用的内容(比如api请求和util函数)。您的代码将更易于调试和维护。
发布于 2018-02-08 11:31:15
是的绝对有可能。在使用这个lib react-native-web
之前,我们已经完成了它。https://github.com/necolas/react-native-web
除了index.ios.js
和index.android.js
之外,您还需要创建index.web.js
,内容应该类似于以下内容。
import { AppRegistry } from 'react-native';
import App from './app/Containers/App/App.container';
AppRegistry.registerComponent('ReactNativeWeb', () => App);
AppRegistry.runApplication('ReactNativeWeb', { rootTag: document.getElementById('react-app') });
此外,您还需要创建自己的nodejs代码来服务包。全参考
https://stackoverflow.com/questions/48591233
复制相似问题