Ben*_*nke 20 react-native expo
我现在做了很多研究,以找出React Native项目,CRNA和Expo项目之间的确切差异和权衡.
我的主要指导是这个
但是我仍然不明白我使用带有本机代码的ExpoKit与使用本机代码的普通React Native项目有什么(dis-)优势,除了我不能在普通的React Native项目中使用Expo API.
我知道当我在Expo开始一个项目时,我可以将它作为ExpoKit项目或React Native项目弹出.在两者中我都可以使用本机代码.在ExpoKit中,我仍然可以在普通的React Native项目中使用Expo API.
所以我的问题:
如果我可以在ExpoKit项目中使用本机代码和所有Expo API,那么使用react本机项目会有什么兴趣?在ExpoKit项目中,我仍然可以使用所有Expo API和所有React Native API,对吧?!
如果我安装expo,我可以在React Native项目中使用Expo API npm install --save expo吗?
React Native API和Expo API有什么区别?
dik*_*une 21
ExpoKit是"纯JS"世博应用和"香草"React Native之间的混合体.它的核心仍然是React Native项目,但有一些不同之处在于构建系统,开发人员体验和可用功能.
截至今天,Expo的SDK中的大多数API都不在香草React Native项目中提供,但它们在ExpoKit中可用.我们认为这可能会在未来发生变化,但这将是很多工作.
Expo的推送通知服务目前不适用于ExpoKit,也不适用于香草React Native.
vanilla RN应用程序和ExpoKit应用程序都使用Xcode和Android Studio来构建本机代码.iOS ExpoKit应用程序使用CocoaPods来安装依赖项,这可能会增加管理本机构建的一些复杂性.Android ExpoKit应用程序具有额外的Gradle配置,可将多个版本的React Native构建到同一个二进制文件中(这用于启用多个SDK版本的JS的无线更新),这有时会增加添加其他React Native库的复杂性.
ExpoKit和React Native项目的JavaScript由Metro构建,但在ExpoKit中,您需要使用Expo的XDE或exp工具运行Metro,以便他们可以处理项目的额外配置.这意味着您运行的命令exp start不是react-native run-android.
由于ExpoKit目前的设计(虽然将来可能会有所改变),但一些开源的React Native库可能与ExpoKit存在兼容性问题.例如,如果一个机库预计将能请求参反应对Android原生的OkHttp例如,只要里面ExpoKit运行,由于命名空间世博会时使用,以允许发生反应原产于编译多个版本的类型不匹配.也就是说,这些问题往往非常罕见,我们正在研究一些不同的方式让ExpoKit与生态系统中的图书馆越来越兼容.
这种多版本支持还意味着ExpoKit二进制文件往往比相应的香草React Native二进制文件更大,尽管这可能在将来发生变化.
从评论1问:你可以修改ExpoKit打造你想要的,但它可能使稍硬升级到较新的SDK版本取决于你如何严重编辑.
| 归档时间: |
|
| 查看次数: |
6326 次 |
| 最近记录: |