首页 文章

React Native跨平台代码库

提问于
浏览
3

Facebook已经表示,React Native Build 在学习一次,随处写入的原则之上,并且其目标不是编写跨平台代码 .

NativeScript与ReactNative非常相似,因为它们都使用Node.js,它通过在使用无法共享的本机组件的文件中编写特定于平台的代码,提供了在多个平台上共享相同代码的功能 . 它通过简单的命名约定来实现,例如 foo.ios.js .

由于Facebook还没有为iOS以外的其他平台发布React Native代码 . 这是他们将来可能支持的东西吗?

1 回答

  • 3

    我认为Android,iOS和Web之间存在太多差异,因此为整个项目构建通用代码库没有多大意义 . Android版本不仅有本机组件,而且应用程序屏幕和导航的逻辑也会不同(iOS / Android / Web都有完全不同的导航模式) . 此外,还有许多本机组件作为iOS / Android项目的一部分,它们会影响应用程序的启动/调试等 . 因此,将Android和IOS部件保持为单独的项目可能要好得多 .

    我如何理解(并同情)Facebok模型:

    每当有一个共同的功能(在javascript中)你可以分离出来而不依赖于react-native视图时,他们会将它作为可以在web / iOS / Android上重用的独立组件来实现 . 例如,他们有为Facebook Build 的中继库 . 它抽象了对Facebook服务器上的开放图数据的访问 - 完全相同的中继库可以在任何一个环境中使用,因为它没有依赖于视图,应用程序逻辑和反应 .

    我非常同意这种方法 - 跨平台的最佳方式是遵循相同的做法:

    • 使某些环境中的某些东西起作用

    • 使其独立,单一用途的库没有依赖性的反应,视图,导航逻辑 .

    • 在其他地方使用该库

    因此,针对相同“项目”的Android和iOS以及基于反应的应用程序将始终是三个不同的代码库,但是它们可能以重用库的形式具有相当多的共享javascript代码 .

相关问题