react中如何优雅的使用svg


本文摘自PHP中文网,作者coldplay.xixi,侵删。

react中优雅的使用svg的方法:首先安装【svg-sprite-loader】,并配置【/config/webpack.config.js】;然后在src文件夹下新建一个icons文件夹;最后设置SvgIcon组件。

本教程操作环境:windows7系统、React17版,该方法适用于所有品牌电脑。

相关学习推荐:react视频教程

react中优雅的使用svg的方法:

1、安装 svg-sprite-loader

1

yarn  add svg-sprite-loader --dev

or

1

npm i svg-sprite-loader -D

2、配置 /config/webpack.config.js (yarn eject 后的配置 )

注意:新添加的loader一定要放到file-loader之前

原因:webpack的loader执行是从后往前执行的

loader 里添加如下配置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

{

     test: /\.(eot|woff2?|ttf|svg)$/,

     exclude: path.resolve(__dirname, "../src/icons"), //不处理指定svg的文件(所有使用的svg文件放到该文件夹下)

     use: [

       {

         loader: "url-loader",

         options: {

           name: "[name]-[hash:5].min.[ext]",

           limit: 5000, // fonts file size <= 5KB, use 'base64'; else, output svg file

           outputPath: "font",

           publicPath: "font"

         }

       }

     ]

   },

   {

     test: /\.svg$/,

     loader: "svg-sprite-loader",

     include: path.resolve(__dirname, "../src/icons"), //只处理指定svg的文件(所有使用的svg文件放到该文件夹下)

     options: {

       symbolId: "icon-[name]" //symbolId和use使用的名称对应      <use xlinkHref={"#icon-" + iconClass} />

     }

   },

3、src 文件夹下新建一个 icons 文件夹

icons 文件夹下新建 svg 文件夹放 svg 文件

目录

30ace4956f6337221455dfc88abf92b.png

index.js 加载所有 svg 文件夹下 svg 文件

1

2

3

const requireAll = requireContext => requireContext.keys().map(requireContext);

const svgs = require.context("./svg", false, /\.svg$/);

requireAll(svgs);

然后一定要在react入口文件 src/index.js中导入src/icons/index.js

代码如下

1

import "./icons";

4、SvgIcon 组件

阅读剩余部分

相关阅读 >>

使用React写一个网站的心得体会

有哪些React多端统一框架?

什么是React dva?

React中怎么点击跳转

React中如何引入插件

React中页面如何传值

React中怎么安装sass

vue和React监听数据的区别是什么?

React怎么循环map

React和vue的区别及优缺点是什么

更多相关阅读请进入《React》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...