91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

react中怎么優雅的使用svg

發布時間:2020-12-18 10:09:50 來源:億速云 閱讀:516 作者:小新 欄目:web開發

這篇文章主要介紹react中怎么優雅的使用svg,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

react中優雅的使用svg的方法:首先安裝【svg-sprite-loader】,并配置【/config/webpack.config.js】;然后在src文件夾下新建一個icons文件夾;最后設置SvgIcon組件。

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

1、安裝 svg-sprite-loader

yarn  add svg-sprite-loader --dev

or

npm i svg-sprite-loader -D

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

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

原因:webpack的loader執行是從后往前執行的

loader 里添加如下配置

         {
              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 文件

目錄

react中怎么優雅的使用svg

index.js 加載所有 svg 文件夾下 svg 文件

const requireAll = requireContext => requireContext.keys().map(requireContext);
const svgs = require.context("./svg", false, /\.svg$/);
requireAll(svgs);

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

代碼如下

import "./icons";

4、SvgIcon 組件

src/components 文件夾下建一個 SvgIcon 文件夾 添加 index.jsx 文件

目錄

react中怎么優雅的使用svg

index.jsx 組件內容如下:

import React from "react";
import PropTypes from "prop-types";
import styles from "./style.less"; //已啟用 CSS Modules
const SvgIcon = props => {
  const { iconClass, fill } = props;
  return (
    <i aria-hidden="true" className="anticon">
      <svg className={styles["svg-class"]}>
        <use xlinkHref={"#icon-" + iconClass} fill={fill} />
      </svg>
    </i>
  );
};
SvgIcon.propTypes = {
  // svg名字
  iconClass: PropTypes.string.isRequired,
  // 填充顏色
  fill: PropTypes.string
};
SvgIcon.defaultProps = {
  fill: "currentColor"
};
export default SvgIcon;

style.less

.svg-class {
  display: inline-block;
  overflow: hidden;
  font-size: 14px;
  min-width: 14px;
  width: 1em;
  height: 1em;
}

5、使用

把要使用的的svg文件放到src/icons/svg目錄下,使用的時候把svg名稱給iconClass即可

import React from "react";
import SvgIcon from "@/components/SvgIcon";
const Demo = () => {
    const svgName="content"  // content.svg  已經放到 /src/icons/svg/  目錄下
  return <SvgIcon iconClass={svgName} />;
};
export default Demo;

以上是“react中怎么優雅的使用svg”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

十堰市| 崇左市| 永新县| 孝感市| 电白县| 呼图壁县| 洪泽县| 永胜县| 三明市| 桃源县| 麟游县| 青浦区| 枣阳市| 许昌市| 资溪县| 鹰潭市| 武强县| 赞皇县| 中山市| 旌德县| 唐海县| 吕梁市| 界首市| 金川县| 会宁县| 内丘县| 兴隆县| 通道| 金阳县| 武隆县| 苍溪县| 山东| 社旗县| 许昌市| 林口县| 吕梁市| 耿马| 乐都县| 商丘市| 高平市| 米脂县|