首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在material-ui的`SvgIcon`中加载外部svg文件?

在material-ui的SvgIcon中加载外部svg文件,可以通过以下步骤实现:

  1. 首先,将外部的svg文件保存在项目的某个目录下,例如src/assets/icons
  2. 在React组件中引入SvgIcon组件和外部svg文件。可以使用import语句导入SvgIcon组件,并使用require语句导入外部svg文件。例如:
代码语言:txt
复制
import React from 'react';
import SvgIcon from '@material-ui/core/SvgIcon';

const MyIcon = (props) => (
  <SvgIcon {...props}>
    <path d={require('../assets/icons/my-icon.svg')} />
  </SvgIcon>
);

export default MyIcon;
  1. SvgIcon组件中,使用path元素来加载外部svg文件。通过require语句引入外部svg文件,并将其作为d属性的值传递给path元素。注意,这里使用了spread操作符{...props}将传递给MyIcon组件的属性传递给SvgIcon组件。
  2. 在应用中使用MyIcon组件。可以像使用其他material-ui图标一样使用MyIcon组件,例如:
代码语言:txt
复制
import React from 'react';
import MyIcon from './MyIcon';

const App = () => (
  <div>
    <MyIcon color="primary" />
  </div>
);

export default App;

这样,就可以在material-ui的SvgIcon中加载外部svg文件了。请注意,上述代码中的路径和组件名称仅作为示例,实际使用时需要根据项目的目录结构和文件名进行相应的调整。

关于material-ui的SvgIcon组件和外部svg文件的加载,腾讯云提供了一系列相关产品和服务,例如腾讯云对象存储(COS)用于存储外部svg文件,腾讯云CDN用于加速文件的分发,腾讯云API网关用于管理和调用API等。具体的产品和服务选择可以根据项目需求和实际情况进行决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在Vue项目中更优雅地使用svg

css 雪碧图中是把多个背景图片放在一张大图片中,而 svg 雪碧图则是把多个 symbol 放在一个大 svg ,每个 symbol 代表了一个图标,以后每次想要使用图标....svg 文件,如何根据多个单独 .svg 文件生成 svg 雪碧图?...在 vue.config,js module.export 中新增: module.expors = { chainWebpack(config){ //排除icons目录svg文件处理...:'icon-[name]'}) .end() } } 这样其实已经可以生成 svg 雪碧图了,之后这个雪碧图会作为 svg 元素注入到 html : 如何在...js 文件引入项目中即可,这种方式同样可以将 svg 注入到 html : 如何在Vue项目中更优雅地使用svg-3.png 但是这种方式不利于代码维护,不可能说每一次新增图标都到 iconfont

12.4K21

何在vue组件引入外部css和js文件

在使用vue框架开发时,我们都知道一个组件可以同时写HTML、css、js代码,只需三个标签而已,如下: 但是要真把所有的代码都写入一个组件文件当中,那么代码量是非常大...,极不便于修改和维护,这时就需要把css样式和js代码写到其他文件下,再引入组件当中。...具体方法如下: 在组件引入css文件: @import url(css文件路径) 在组件引入js文件: 首先需要将我们js模块“抛出”,让其他文件能获取到...;如下, function home() { console.log("我是js文件") } export { home } 其次在需要导入文件导入; ...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

8.3K20

在 Vue 项目中更优雅使用 icon

前言 在 Web 开发,我们经常会用到 icon,icon 使用经历了从图片到字体,再到 svg 演变过程,也产生出相应 icon 库,如雪碧图、Font Awesome、Iconfont 等等...随着前端发展,icon 使用方案落在了 svg 上,svg 有着矢量图优势,可以无限放大而不失真,而且 svg 本身就是一种 XML 文件,可以直接在 HTML 中使用,也可以通过 CSS 进行样式控制...,但是在 Vue 项目中使用 svg 时,我们会遇到一些问题,本文将介绍如何在 Vue 项目中更优雅使用 svg icon。...add svg-sprite-loader svgo-loader -D 配置 统一将所有的 icon 都以 svg 形式都放在 src/assets/icons 目录。...在 src/main.js 引入所有的 svg 图标,之后可在文件夹自行添加或者删除图标,所以图标都会被自动导入,无需手动操作: import Vue from 'vue' import SvgIcon

47940

Vite项目当中SVG图标的配置及图标全局组件封装

为什么要使用 SVG 图标? 在开发项目的时候经常会用到svg矢量图,而且我们使用SVG以后,页面上加载不再是图片资源,这对页面性能来说是个很大提升,而且我们SVG文件比img要小很多。...安装 SVG 依赖插件 pnpm install vite-plugin-svg-icons -D 在 vite.config.ts 配置插件 import { defineConfig } from...,检查你复制这个 svg 图标代码是否有这个 fill 属性,如果有就将其移除掉,就可以使用了) 如果需要调整图标的大小,那么就需要在 svg 标签上添加 style 就可以了 ...component / SvgIcon / index.vue 这里是组件一个简单封装: <use :xlink...,其实也可以去遍历需要注册成全局组件文件夹里面的组件文件进行注册。

16600

设计师使用SVG必读文章

我们来看下图2段SVG代码对比,很明显,使用了复合路径SVG在相比之下,把所有图标内容都绘制在一个里了,即缩减了SVG文件大小,同时,一个icon对应一个唯一路径结构,大大提升了脚本操作便利性...[图片] 这样导出代码冗余太多,内部icon绘制定位也需要依靠外部位移才能正确显示,是不健康。...故,在Sketch请勿使用小画板导出SVG元素,而AI是可以放心使用,当然最安全方式,还是新建一个文件,独立进行icon导出。 最后,敲黑板导出设置!...其实,这是因为,单独在浏览器查看这个SVG,嵌入或是链接方式都没有问题;但如果使用标签来引用这个SVG,浏览器 img 是不允许加载外部资源,也就是我们说,“一个图片,咋还能还引用了一张图片呢...如果SVG体积格外大,可以按需将小数点降到2或者1,但是这回导致导出SVG与源文件定位吻合度降低,一些Path图形可能发生形变,请大家按需选择。

5.5K61

Vue项目中优雅使用icon

,首先我们不能覆盖原有的svg解析loader,我们只需要把icons/svg这个文件夹下svg文件解析打包即可,我们在vue.config.jschainWebpack函数配置,来看代码 //...现在我们就可以在你想使用图标的位置使用了,使用方式如下 在main.js引入(全局引入)要使用图标文件 import "@/icons/svg/qq.svg"; 模版中使用 <use...,我们在icons/文件夹下新建index.js文件,两行代码搞定,内容如下 // icons图标自动加载 const req = require.context("..../svg文件为上下文,使用正则匹配了它需要检测文件名,这样它就会在当前目录svg文件夹下去匹配符合规则文件名 然后我们使用req.keys拿到所有文件名数组,再使用map遍历加载req方法,这样当该文件被调用时会遍历加载所有匹配到文件...icons/index.js改进如下: import Vue from "vue"; import SvgIcon from "@/components/SvgIcon"; // icons图标自动加载

2.2K20

Vite Plugin Just so so

我们可以使用SVG创建可伸缩支持动画图表。 最后,SVG通常比其他格式高分辨率等效文件小得多。从理论上讲,这意味着我们可以减少一些页面大小并减少加载时间。...我们在外部又嵌套了一个,此时这个就是我们项目中唯一svg文件,而其他文件都被变为内嵌到它下面了 然后,我们就可以通过刚才给定id来获取对应svg...比方说在我们项目中存在如下目录(src/icons)里面存放是我们在项目中使用svg文件。 我们现在要做就是将这些文件通过「猛虎」操作,放置到一个svg(all.svg)内。...可以看到我们之前说过 src/icons中所有的svg都被复制到all.svg对应symbol symbolid对应svg文件名称 symbol属性和源svg一模一样 最终代码 import...随后,我们就在项目的dist中看到这些文件了。 然后,我们就可以发布到npm或者私有仓了。 这里发布流程我们就不写了。因为我们之前写过。 如何在 npm 上发布二进制文件

9710

css3attr函数使用,加载unicode图标

正文开始... css加载图标 这是我们项目中最常用一种方式 我在自己iconfont[1]仓库添加了几个图标 打开前阵子我开源一个移动端项目topfreeApplication[2] 我们在...svg图标 在这之前,我们都是用class方式加载,现在我们看下svg方式加载图标 在src/pages/home/component/Search.vue组件也看到我使用一个svg-icon二次组件加载图标的...渲染这整个标签,不然图标始终显示不出来) 所以你会发现在css你用attr这个属性就可以动态加载标签上unicode了 cssAttr 在以上我们图标用unicode就可以加载图标,同时我们也知道利用...cssattr函数成功解决了图标加载问题 我们看看attr这个属性可以在我们项目中怎么用,在哪些场景可以用?...因此我们就用cssattr结合js实现了一个计数器功能,关于cssattr还有更多待挖掘功能,在动态改变图标等,attr是一种不错选择方案 总结 加载阿里矢量图标除了使用class与svg,我们也可以使用

1.4K30

【vite+vue3+Ts+element-plus】肩并肩带你写后台管理之自动引入(vue、element-plus)和自定义图标

vue3组合式API(也是本文采用方式)无论是ref还是生命周期函数之类,都需要在使用时进行手动引入,这里我们把vue组件也还有vue-router自动引入了,后期用时候就无需再手动引入了。...首先我们创建文件夹assets/icons/svg,用来存放我们下载svg 之后再创建一个assets/icons/.ts,用来返回所有图标的名字,我们在菜单管理里选择图标时需要用到。...' plugins: [ createSvgIconsPlugin({ // 指定需要缓存图标文件夹 iconDirs: [path.resolve...之后我们还需要创建一个icon组件components/SvgIcon/index.vue <svg aria-hidden="true" class="svg-icon" :.../components/SvgIcon/index.vue' import 'virtual:svg-icons-register' createApp(App).component('svg-icon

2.3K20

127. 精读《React Conf 2019 - Day1》

1 引言 React Conf 2019 在今年 10 月份举办,内容质量还是一既往高,如果想进一步学习前端或者 React,这个大会一定不能错过。...> ); } 结合上面提到主题方案,就可以控制 svg 主题颜色。...) video_data } ... on SongPost { @module('SongComponent.js') song_data } } 这样首屏数据也只会按需加载用到部分...这也从某种意义上说明了 iconFont 注定被淘汰,因为字体文件目前无法按需加载,只有全部使用 SVG 图标的项目才能使用这种优化。...会有专人 Review 该 Pull Request,当两人以上通过该 Pull Request 时,你翻译将被合并到仓库。 删除你所创建分支(继续参与,参考同步流程)。

1.7K20

更加优雅使用Icon

SVG Icon ,然后再写一个 Vue 组件 统一加载它,在每次需要使用图标时就去下载一个 SVG 图标到 Icon 模块,使用组件并传入...SVG 文件名即可加载图标,如果你不了解请看上文。...没有办法,该升级还得升级,那就改吧,改完了之后问题就出现了,如果我们还使用之前加载自定义图标,那就出现了一种尴尬情况,同是 SVG 图标,同一个项目,两种使用方式。。。...unplugin-icons 插件中有一个 customCollections 属性,用来做自定义图标的加载,但是由于我们需要引入 SVG 文件,所以还需要一个 SVG 文件解析 loader ,这点插件也为我们考虑到了...项目中组件自动引入解析是插件内置,但是对于上文中 Icon 组件,由于是外部引入组件,我们就需要配置它独有的解析器了,unplugin-icons 插件提供给我们一个 unplugin-icons

6.1K41
领券