跳到主要内容

使用 Libraries

React Native 提供了一组开箱即用的内置 Core Components and APIs,可在你的应用中直接使用。你并不局限于 React Native 自带的组件和 API。React Native 拥有一个由数千名开发者组成的社区。如果 Core Components and APIs 中没有你要找的内容,你也许可以从社区中找到并安装一个库,为你的应用添加所需功能。

选择包管理器

React Native 库通常通过 npm registry 使用 npm CLIYarn Classic 等 Node.js 包管理器进行安装。

如果你的计算机上安装了 Node.js,那么你已经安装了 npm CLI。一些开发者更喜欢使用 Yarn Classic,因为它的安装速度稍快,并且提供了 Workspaces 等额外的高级功能。这两个工具都能很好地与 React Native 配合使用。为了便于说明,本文接下来将使用 npm。

备注

在 JavaScript 社区中,“library”和“package”这两个术语可以互换使用。

安装库

要在项目中安装库,请在终端中进入项目目录并运行安装命令。让我们以 react-native-webview 为例:

npm install react-native-webview

我们安装的库包含原生代码,在使用它之前,需要将其链接到我们的应用。

在 iOS 上链接原生代码

React Native 使用 CocoaPods 管理 iOS 项目依赖项,大多数 React Native 库也遵循这一约定。如果你使用的库不遵循这一约定,请参阅其 README 了解其他说明。在大多数情况下,以下说明都适用。

ios 目录中运行 pod install,以便将其链接到我们的原生 iOS 项目。无需切换到 ios 目录即可执行此操作的方法是运行 npx pod-install

npx pod-install

完成后,重新构建应用二进制文件,即可开始使用新的库:

npm run ios

在 Android 上链接原生代码

React Native 使用 Gradle 管理 Android 项目依赖项。安装带有原生依赖项的库后,你需要重新构建应用二进制文件,才能使用新的库:

npm run android

查找库

React Native Directory 是一个可搜索的、专门为 React Native 构建的库数据库。这是为 React Native 应用查找库时首先应该查看的地方。

你将在该目录中找到的许多库来自 React Native CommunityExpo

由 React Native Community 构建的库由志愿者以及依赖 React Native 的公司中的个人开发者推动。这些库通常支持 iOS、tvOS、Android、Windows,但具体情况因项目而异。该组织中的许多库过去曾是 React Native Core Components and APIs。

由 Expo 构建的库全部使用 TypeScript 编写,并且在可能的情况下支持 iOS、Android 和 react-native-web

继 React Native Directory 之后,如果你无法在该目录中找到专门针对 React Native 的库,那么 npm registry 是下一个最佳去处。npm registry 是 JavaScript 库的权威来源,但其中列出的库可能并不都与 React Native 兼容。React Native 是众多 JavaScript 编程环境之一,其他环境还包括 Node.js、Web 浏览器、Electron 等,而 npm 包含适用于所有这些环境的库。

确定库的兼容性

它能与 React Native 配合使用吗?

通常,为其他平台专门构建的库无法与 React Native 配合使用。例如,react-select 是为 Web 构建的,专门面向 react-dom;而 rimraf 是为 Node.js 构建的,会与计算机文件系统交互。其他库(如 lodash)只使用 JavaScript 语言特性,因此可以在任何环境中运行。随着时间推移,你会逐渐了解这些情况,但在此之前,最简单的确定方法就是亲自尝试。如果结果证明某个包无法在 React Native 中运行,可以使用 npm uninstall 删除它。

它能在我的应用支持的平台上运行吗?

React Native Directory 允许你按平台兼容性进行筛选,例如 iOS、Android、Web 和 Windows。如果你想使用的库目前未列在其中,请参阅该库的 README 了解更多信息。

它能与我的应用所使用的 React Native 版本配合使用吗?

库的最新版本通常与 React Native 的最新版本兼容。如果你使用的是较旧版本,应参阅 README 了解应该安装哪个版本的库。你可以运行 npm install <library-name>@<version-number> 来安装库的特定版本,例如:npm install @react-native-community/netinfo@^2.0.0