在 React Native 使用阿里 iconfont 图标

在 React Native 使用阿里 iconfont 图标

💡 原文中文,约1100字,阅读约需3分钟。
📝

内容提要

在 React Native 中使用阿里 iconfont 图标无需 react-native-vector-icons,只需三步:在 package.json 配置 rnpm 资源路径并运行 react-native link 安装字体后重启项目;从 iconfont 下载的图标集中找到对应 unicode 放入 Text 标签;将该标签的 fontFamily 设为图标字体全名。

🔎

延伸解读

为何可以绕过 react-native-vector-icons

文章指出,使用 iconfont 的本质是使用一种“图标形状的字体”,因此不需要借助 react-native-vector-icons 这类图标组件库。直接通过字体文件与 unicode 字符即可在 React Native 中显示图标,这样能减少引入额外依赖和无用代码。这一思路适合希望保持项目轻量、只使用已有 iconfont 资源的开发者。

安装字体的关键配置与平台差异

安装字体时,需要在 package.json 中添加 rnpm 字段,将 assets 指向字体目录,然后运行 react-native link。链接完成后,iOS 会在 plist 文件中看到配置,Android 则会在 android/app/src/main/assets/fonts 下出现字体文件。文章提醒,安装后必须重启 React Native 项目,否则字体可能不会生效。

使用图标时的两个易错点

在 Text 标签中直接放入从 iconfont 下载文件里找到的 unicode,例如 {'\ue936'},即可显示对应图标。设置样式时,fontFamily 必须填写字体的全名,而不是文件名。文章提到 iconfont 的字体名和文件名恰好一致,所以不容易出错,但换用其他字体时需特别注意这一点。

❓

Q&A

在 React Native 中使用阿里 iconfont 图标需要安装 react-native-vector-icons 吗?

不需要。文章指出,使用 iconfont 本质上就是使用一种“图标形状的字体”,只需三步即可,无需借助 react-native-vector-icons,避免增加无用代码。

如何在 React Native 项目中安装 iconfont 字体?

在 package.json 中添加 rnpm 配置,指定字体资源路径(如 "./assets/fonts/"),然后运行 react-native link 命令。安装后需重启 React Native 项目。

react-native link 之后,字体文件在 iOS 和 Android 中分别放在哪里?

iOS 中会在 plist 文件中看到对应配置;Android 中字体文件位于 android/app/src/main/assets/fonts 目录下。

如何找到 iconfont 图标对应的 unicode 并在 React Native 中使用?

打开从 iconfont 下载的图标集,里面有一个文件可以看到对应图标的 unicode。使用时将 unicode 放入 Text 标签中,例如 <Text>{'\ue936'}</Text>。

在 React Native 中如何为 iconfont 图标应用字体样式?

在 Text 标签的 style 中设置 fontFamily 为图标字体的全名,例如 fontFamily: "iconfont",同时可设置 fontSize 等样式。注意 fontFamily 要使用字体全名,而不是文件名。

使用 iconfont 时 fontFamily 应该填文件名还是全名?

应该填字体全名,而不是文件名。文章特别提醒这一点,不过 iconfont 的三个名字通常都一样。

🏷️

标签

➡️

继续阅读