一种通过svg-sprite-loader引入svg图标的方法
svg-sprite-loader 可以将 svg icon文件整合到一起。利用 svg 的 symbol 元素,将每个 icon 包括在 symbol 中,
通过 use 元素使用该 symbol 。配合 SvgIcon 组件,可以方便的添加和引用 svg 图标文件。
安装并配置svg-sprite-loader
首先安装 svg-sprite-loader 插件,并在 webpack 构建文件中进行配置。
引入 svg-sprite-loader 依赖
在 webpack 中增加配置
引入svg文件
为了让 webpack 处理 svg 文件,还需要在 js 中显式引入(import/require)文件。这里使用一种批量导入方式。
- 新建存放 svg 图标的文件夹 ./src/icons
- 在其中创建一个 index.js 文件
- 将准备好的 svg 图标文件放在 ./src/icons/svg 目录下
- 在入口文件处引入 ./src/icons/index.js 文件
编写SvgIcon组件
还需要一个组件可以方便的引入打包好的 svg 图标。
React模式
在 ./src/components/SvgIcon/index.tsx 创建组件。
PS:为了与 antd 的图标样式保持一致,这里使用了 anticon 类名。
在相同目录下 ./src/components/SvgIcon/svg-icon.css 创建样式文件。
Vue模式
创建 ./src/components/SvgIcon.vue 组件文件。
使用图标
iconClass 属性是放置在 ./src/icons/svg 目录下文件的名称。
className 属性是补充的样式类名。
在 React 中使用
在 Vue 中使用