Vant 组件按需自动引入与多方案图标集成
按需引入避免全量引入臃肿,自动引入免去手动注册;Iconify 提供 20 万+ 图标按需加载
✓ 组件按需自动引入,无需手动注册✓ 图标数量超过 20 万 ✕ Iconify API 按需请求,内网需
方案简介
该配方解决移动端模板中组件库与图标的引入效率问题。全量引入 Vant 组件库太过臃肿,模板使用 unplugin-vue-components 插件进行按需自动引入组件;同时集成多种图标方案:推荐 Iconify 图标(数量超过 20 万),并提供本地 SVG 文件图标方案。由于项目使用了 unplugin-vue-components 自动引入组件,main.ts 中无需注册全局图标组件。
组成与分工
- Vant:移动端组件库,配合 unplugin-vue-components 按需引入避免臃肿
- unplugin-vue-components:构建时自动扫描并按需引入组件,免去手动注册
- Iconify:图标库(Iconify for Vue 封装为 i-icon 组件),支持在线 API 与离线图标集两种用法
实施步骤
1. Vant 按需引入
使用 unplugin-vue-components 插件进行按需自动引入组件,可通过官方文档了解更多。
2. Iconify 在线用法
基于 Iconify 图标集网站获取图标名称后填入 i-icon 组件的 icon 属性:
vue
3. Iconify 离线用法(内网环境)
安装图标对应的图标集依赖包:
shell
pnpm i -D @iconify-icons/fa6-solid
引入图标 data 赋值给 icon 属性:
ts
import Fa6SolidHeart from '@iconify-icons/fa6-solid/heart'
4. 本地 SVG 图标
将 svg 图标文件放在 src/icons/svg 目录下,使用 即可。
注意事项与常见问题
- 方法⑴是通过 Iconify API 按需请求获取图标,如果项目仅在内网环境部署,可通过方法⑵离线使用图标
- 依赖包名规则:@iconify-icons/[图标集];图标路径规则:@iconify-icons/[图标集]/[图标名]
- 项目中使用了 unplugin-vue-components 自动引入组件,所以 main.ts 中无需注册全局图标组件
- 配合 VS Code 编辑器扩展可在编码时实时预览图标
优缺点
- ✓ 组件按需自动引入,无需手动注册
- ✓ 图标数量超过 20 万
- ✕ Iconify API 按需请求,内网需
出处
本方案挖掘自开源项目 yulimchen/vue3-h5-template,方案内容与实施命令均来自其 README 原文。
方案出处
yulimchen/vue3-h5-template:🌱 A ready-to-use mobile project base template built with the Vue3, Vant, and Vit 1544 star 🌱 A ready-to-use mobile project base template built with the Vue3, Vant, and Vite. | 基于 Vue3、Vite8、TypeScript/JavaScript、Tailwindcss、Vant4,开箱即用的移动端项目基础模板
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。