什么是反应本机链接?

2023-12-23

What is the purpose of the react-native link command?


Note:来自 React-Native0.60.0使用链接包react-native link已经变得多余了。 Autolink 已添加到 React-Native CLI 中,这意味着 iOS 现在将使用 cocoapods,Android 将使用 gradle。您可以阅读有关自动链接的更多信息here https://github.com/react-native-community/cli/blob/master/docs/autolinking.md.

What is react-native link?

react-native link是安装本机依赖项的自动方法。它是手动链接项目中的依赖项的替代方法。它适用于 Android 和 iOS。

手动链接项目时,大多数步骤是相同的​​,因此使用react-native link允许您轻松安装本机依赖项,​​而无需重复键入类似的代码或执行类似的操作。

但需要注意的是,运行react-native link并不总是完全链接包,有时需要额外的步骤,并且您应该检查仔细阅读安装说明。

在安装依赖项并链接它之前,请务必仔细阅读说明。


iOS 注意事项

如果您的项目正在使用可可豆荚并且您正在链接的依赖项有一个.podspec然后当你使用运行时react-native link它会更新你的Podfile。这不是将文件直接添加到您的 Xcode 项目中。你还必须运行pod install在你的里面ios目录,否则本机依赖项将无法完全安装。

有时安装使用CocoaPods可能会导致更多问题,并且并非每个依赖项都需要安装CocoaPods您可以随时按照我在本 SO 中概述的步骤进行操作answer https://stackoverflow.com/a/54696156/5508175停止react-native link添加依赖项Podfile,这并不理想,但它是一种解决方法。一些依赖项需要添加到Podfile,所以只有当依赖项不需要时才应该这样做pods to run.


react-native link or react-native link dependency-name

你应该只使用react-native link当链接任何依赖项时或者您应该更明确并使用react-native link dependency-name?

根据我的经验,最好使用react-native link dependency-name。这是因为react-native link将尝试链接(或重新链接)所有可以链接的依赖项,这可能会导致代码重复。我遇到的大多数问题都是在链接 Android 本机依赖项时出现的。我认为在后续更新中阻止这种情况发生已经取得了一些进展,但古老的格言在这里适用一朝被蛇咬十年怕井绳


链接良好实践

使用时react-native link dependency-name您应该遵循良好的做法,以免被蜇。有时,您尝试的依赖项无法按预期工作,并且删除链接过程中添加的所有代码可能会很棘手。 (如果您不熟悉 Xcode 项目文件,那么浏览它们可能会是一场噩梦)。

这就是我安装依赖项然后链接它们的方式。

  1. 确保您正在使用版本控制,例如git.
  2. 确保您的代码已完全提交,没有未保存的更改。
  3. 创建一个新分支,然后检查它。
  4. 安装你的依赖项npm i dependency-name
  5. 然后链接你的依赖react-native link dependency-name
  6. 执行依赖项所需的任何其他安装步骤。请参阅依赖项的安装说明。
  7. 检查您的代码是否适用于新的依赖项。
  8. commmit更改并合并分支。

手动链接

如果您更喜欢手动链接本机依赖项,​​那么您应该按照依赖项网站上的说明进行操作,或者您可以查看react-native 提供的文档。

目前仅说明如何手动链接iOS https://facebook.github.io/react-native/docs/linking-libraries-ios#manual-linking项目。

手动链接Android要求您在以下位置进行更改:

  1. settings.gradle
  2. app/build.gradle
  3. MainApplication.java

与往常一样,对于您应该进行的确切更改,您应该查看依赖项的手动链接说明。


我必须链接吗?

这取决于您使用的依赖项,某些依赖项仅使用用 Javascript 编写的代码,因此不需要链接它们,并且运行没有任何好处react-native link dependency-name.

但是,如果依赖项包含本机代码那么你就必须链接。手动或使用react-native link dependency-name.

如何判断是否需要链接依赖项?

首先,您需要检查网站、github 存储库或 npmjs.com 页面的依赖项。通常会有说明告诉您安装后是否链接依赖项。

如果您找不到任何有关链接的说明,则您(可能)不需要链接它。

如果您仍然不确定,请咨询依赖项维护者。

我可以直接运行链接吗?

是的,如果没有任何可链接的内容,它不会执行任何操作。但始终运行它react-native link dependency-name以避免出现问题。

我什么时候运行链接?

您只能在安装依赖项后运行它。我建议您在安装依赖项后立即运行它。然后,在安装任何新的依赖项之前,您应该检查以确保它正常工作,以便您可以轻松调试。

您不需要为每个依赖项运行多次。

无论您创建多少组件或对 javascript 代码进行更改,都不会影响链接,因为链接纯粹是本机的,并且组件是 javascript。


什么是自动链接?

自动链接是一项新功能,正在添加到react-native-cli。您可以阅读有关自动链接的更多信息here https://github.com/react-native-community/cli/blob/master/docs/autolinking.md.

Autolink取代react-native-link

自动链接是 CLI 中内置的一种机制,允许添加 React Native 对本机组件的依赖就像这样简单:

yarn add react-native-webview

自动链接是 React-Native 链接的替代品,它带来了新功能(例如轻松集成 iOS 上的本机依赖项的能力)并修复了一些长期存在的问题。

一旦完全实现,它应该会使使用本机代码添加依赖项到您的项目变得更加容易。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是反应本机链接? 的相关文章

随机推荐