React中使用SVG文件显示成图片

2023-11-08

SVG 没法直接渲染都img。一般引用插件

  • 方案一:使用 create-react-app脚手架 创建react项目
  • 方案二:file-loader 插件

SVG文件优缺点

优点:

  • 不失真, 放大缩小图像都很清晰
  • SVG文件是纯粹的XML, 也是一种DOM结构

缺点:

  • 不能修改宽高,使图片拉伸(一些项目需要变形显示覆盖,如全屏背景图等)

方案一:使用 create-react-app脚手架 创建react项目

react创建项目不止一种,用 create-react-app脚手架创建,自带支持svg。
适合初建项目。已创建的 往下看其他方案

安装:create-react-app

npm install -g create-react-app
或
cnpm install -g create-react-app
或
yarn global add create-react-app

创建项目(注:项目名称不能有大写)

react + js:
create-react-app projectname

react + ts / tsx(尽量用这个。可以创建js文件,后期拓展也不需要改
create-react-app projectname --template typescript

代码

import React from "react";
import logo from '../../assets/logo.svg';

function DEMO() {
  return (
    <img src={logo} alt="" />
  );
}

export default DEMO;

.

方案二:file-loader 插件

安装:

npm install --save file-loader
或
cnpm install --save file-loader
或
yarn add file-loader

使用:

配置 webpack.config.js
若没有暴露,执行 npm run eject (不可逆,先备份或有git先提交代码)

module.exports = {
    // ...
    module:{
        rules:[
            {
                test: /\.(ttf|eot|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/,
                loader: "file-loader?name=assets/[name].[ext]"
            }
        ]
    }
};

组件中使用SVG

import React from "react";
const logo = require("../../assets/logo.svg")

function DEMO() {
  return (
    <img src={logo} alt="" />
  );
}

export default DEMO;

其他:

还有其他类似的插件:

svg-sprite-loader、react-svg、react-svg-loader等,具体的百度,都是类似 安装依赖,配置loader,调用没了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React中使用SVG文件显示成图片 的相关文章

随机推荐

  • 量化投资学习-15:散户与庄家共赢策略之价值长线策略

    散户的尴尬 在前面的文章 量化投资学习 13 一张图残酷的展现了庄家 量化交易者 散户的盈利空间的对比 中分析过 如果散户追求短期利益 采用短期炒作的操作策略 实际的利润空间非常狭小 只能是尾部或头部空间 稍不留神 就会导致亏损 化解尴尬的
  • 微信小程序接入微信支付(四):接收支付结果通知与沙箱测试

    代码主体写完后 还有不可或缺的部分需要补充完整 即接收支付结果通知 官方文档 https pay weixin qq com wiki doc api wxa wxa api php chapter 9 7 index 8 目录 微信小程序
  • 线程的基本概念,线程的同步互斥机制

    一 线程的概念 1 1 什么是线程 线程 线程是进程的一个实体 是被系统独立调度和分派的基本单位 是一个进程并发执行多个任务的机制 并发 单核CPU多任务同时运行 CPU以ms级进行进程调度 1 2 为什么引入线程 进程间的切换表现为上下文
  • 计算机设备显示感叹号,设备管理器有感叹号和问号未知设备的解决方法

    设备管理器有感叹号和问号未知设备怎么办 因为在Windows操作系统中 设备管理器是管理计算机硬件设备的工具 我们可以借助设备管理器查看计算机中所安装的硬件设备 设置设备属性 安装或更新驱动程序 停用或卸载设备 可以说是功能非常强大 但有时
  • VC 如何使程序运行后自己删除自己

    VC 如何使程序运行后自己删除自己 有时候 我们需要创建一个运行后能够自己删除自己的可执行程序即自删除程序 很明显如果一个进程通过直接调用DeleteFile 来删除自己是不可能的 必须另想办法 经过本人在网上参考很多资料后实际测试并集众家
  • Onnxruntime-CUDA版本对应

    ONNX Runtime CUDA cuDNN 1 14 1 13 1 1 13 11 6 8 2 4 Linux 8 5 0 96 Windows 1 12 1 11 11 4 8 2 4 Linux 8 2 2 26 Windows 1
  • Flink源码-SlidingProcessTimeWindow的创建和触发

    今天研究了下SlidingProcessTimeWindow的源码 把TimeWindow的生成和触发计算 大致搞清楚了 写一篇博客记录下 要点 这里讲的是ProcessTime的滑动窗口 每条数据都会触发窗口的分配 创建 一条数据可能分配
  • 基于鲸鱼算法优化支持向量机SVM的分类预测,基于WOA-SVM的光谱分类

    目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 鲸鱼算法的原理及步骤 SVM应用实例 基于鲸鱼算法改进SVM的光谱分类 代码 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机 support vector m
  • 【qt】error: C2248: “QVariant::QVariant”: 无法访问 private 成员(在“QVari

    错误信息 main A a new A engine rootContext gt setContextProperty a a C2248 QVariant QVariant 无法访问 private 成员 在 QVariant 类中声明
  • Unity发布WebGL如何把文件下载到本地——后续,详细实现。

    Unity发布WebGL如何把文件下载到本地 后续 详细实现 前言 一 编写jslib 二 引入dll 编写C 脚本 三 最终效果 总结 版权声明 前言 以前的问题https blog csdn net Wrinkle2017 articl
  • 10.28 云计算

    课上实验实训1 获取令牌 生效环境变量 source etc keystone admin openrc sh 验证令牌 openstack role list 查看角色列表 openstack user list 查看用户列表 opens
  • Elasticsearch 基础 DSL 命令

    Elasticsearch 基础 DSL 命令 1 模拟请求 2 分词器相关 3 索引库相关 4 文档相关 5 查询相关 6 GEO 查询 7 组合查询 8 得分加权 9 排序 10 分页 11 高亮 Elasticsearch 官方文档
  • vue上传excel文件

  • NLP语言学基础

    不同的自然语言有不同的语法结构 因此需要对语言数据进行语法解析 才能让机器更准确地学到相应的模式 儿语言不同于图像 数据标注工作需要有一定的语言学知识 因此数据的整理也相对更困难 下面以英语为例 别的咱也看不懂 对NLP研究中常见的基本语言
  • mysql运行效率最高的是memory_MySQL数据库的性能的影响分析及其优化

    MySQL数据库的性能的影响分析及其优化 MySQL数据库的性能的影响 一 服务器的硬件的限制 二 服务器所使用的操作系统 三 服务器的所配置的参数设置不同 四 数据库存储引擎的选择 五 数据库的参数配置的不同 六 重点 数据库的结构的设计
  • Android多窗口模式(分屏模式)

    Android N 支持多窗口模式 或者叫分屏模式 即在屏幕上可以同时显示多个窗口 在手机模式下 两个应用可以并排或者上下同时显示 如图 1 所示 屏幕上半部分的窗口是系统的 CLOCK 应用 下半部分是系统设置功能 用户可以拖动两个应用之
  • Chrome浏览器崩溃“STATUS_INVALID_IMAGE_HASH”的解决方法

    原文地址 Chrome浏览器崩溃 STATUS INVALID IMAGE HASH 的解决方法 JUNE S BLOG 六月博客 今天无意间 发现Chrome浏览器多了个 由贵单位管理 的提示 出于安全的考虑 想立马把它搞掉 百度了一堆方
  • 使用TextInputLayout创建一个登陆界面(j界面很漂亮)

    http www jcodecraeer com a basictutorial 2015 0821 3338 html
  • xss、csrf、ssrf的区别

    要想搞懂这三者有什么区别 首先需要知道它们的原理 xss 原理 跨站脚本攻击 攻击分类造成危害为 存储型 gt 反射型 gt DOM型 与SQL注入差不多 SQL注入漏洞是WEB应用程序未对用户输入的参数严格的过滤 导致被攻击者恶意拼接SQ
  • React中使用SVG文件显示成图片

    SVG 没法直接渲染都img 一般引用插件 方案一 使用 create react app脚手架 创建react项目 方案二 file loader 插件 SVG文件优缺点 优点 不失真 放大缩小图像都很清晰 SVG文件是纯粹的XML 也是