当前位置:

首页 > 编程开发 > vue3+vue-cli4中怎么使用svg

vue3+vue-cli4中怎么使用svg

一、安装svg-sprite-loadernpminstallsvg-sprite-loader--save-dev二、在src/components/svgIcon下新建组件index.vueimport{computed}from"@vue/reactivity";exportdefault{name:"baseSvgIcon",props:{iconClass:{type:String},className:{type:String},},setup(props){consticonName=com

本文目录

    一、安装 svg-sprite-loader

    npm install svg-sprite-loader --save-dev

    二、在src/components/svgIcon下新建组件index.vue

    
    
    
    
    
    .svg-icon {
      width: 1em;
      height: 1em;
      vertical-align: -0.15em;
      fill: currentColor;
      overflow: hidden;
    }
    

    三、在assets在创建icons文件夹

    imgs文件夹里含一个svg文件夹,放svg格式文件,以及一个index.js文件,该文件内容如下

    // 获取当前目录所有为.svg的文件
    const req = require.context('./svg', false, /\.svg$/)
    
    // 解析获取的.svg文件的文件名称并返回
    const requireAll = (requireContext) =>{
        return requireContext.keys().map(requireContext)
    }
    requireAll(req)

    四、在src同级下创建vue.config.js进行配置

    经评论区总结,如果是在非vue-cli4的项目中,在config.module.rules.delete("svg");报错的话,可以尝试使用config.module.rule("svg").exclude.add(resolve("src/assets/imgs")).end();替换该语句

    const path = require('path')
    
    function resolve(dir) {
      return path.join(__dirname, '.', dir)
    }
    
    module.exports = {
      chainWebpack: config => {
        config.module.rules.delete("svg"); // 重点:删除默认配置中处理svg,
        config.module
          .rule('svg-sprite-loader')
          .test(/\.svg$/)
          .include
          .add(resolve('src/assets/imgs')) // 处理svg目录
          .end()
          .use('svg-sprite-loader')
          .loader('svg-sprite-loader')
          .options({
            symbolId: 'icon-[name]'
          })
      },
    };

    五、在main.js里引入,以及做一些小修改

    此处注意,将组件注册放到main.js里。不然会报[Vue warn]: Failed to resolve component: svg-icon的问题,预测为父组件先创建完了而子组件还没创建进去,导致该问题的出现

    import { createApp } from 'vue'
    import App from './App.vue'
    import router from './router'
    import store from './store'
    import '@/assets/icons'
    
    const app = createApp(App)
    
    import SvgIcon from '@/components/svgIcon' 
    app.component('svg-icon', SvgIcon)
    
    app.use(store).use(router).mount('#app')

    六、在页面中使用

    
      
    
      

    七、文件目录结构及其效果展示

    vue3+vue-cli4中怎么使用svg

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Vue3
    上一篇: 高德地图怎么测量距离_高德地图测量距离的方法
    下一篇: 抖音上传作品有几种方法?如何搬运别人的视频变成自己的原创呢?
    相关文章 更多
    pinia数据持久化的步骤详解与插件配置教程
    pinia数据持久化的步骤详解与插件配置教程

    详解Pinia数据持久化的实现步骤,包括手动订阅状态、封装通用插件及处理序列化例外,帮助开发者构建稳定的前端状态存储方案。

    PS网页版直接使用
    PS网页版直接使用

    PS网页版免费官方入口为https://www.adobe.com/products/photoshop/web.html,支持PSD编辑、实时协作、多色彩空间、智能抠图、AI修复、跨端同步、中文引导及SVG/PSD兼容等核心功能。 对于很多设计新手,或者只是偶尔需要处理图片的朋友来说,直接在线、免

    chrome搜索免验证入口
    chrome搜索免验证入口

    Chrome官方免验证入口为https://www.google.cn/chrome/,提供全平台安装包、免登录即用、本地化安全机制及引擎级性能优化。 到底该去哪里找正版、免费且无需繁琐验证的Chrome浏览器入口?这个问题困扰了不少网友。今天,我们就来直通核心,为大家详细拆解Chrome引擎的官方

    HTML转PDF在线官网
    HTML转PDF在线官网

    HTML转PDF在线官网入口:网页内容一键生成PDF指南 HTML转PDF在线官网入口是https://htmltopdf.com,支持HTML5标签、CSS渲染、多语言字符、Web字体;操作免注册,可预览、自定义参数、批量导出;输出300DPI、保留超链接与矢量图;本地处理保障隐私;兼容主流浏览器

    VSCode快速生成SVG代码预览_在编辑器内实时查看矢量图
    VSCode快速生成SVG代码预览_在编辑器内实时查看矢量图

    VSCode默认不渲染SVG,必须安装SVG Viewer(作者cssho)插件双击预览;它轻量快速、支持自动刷新,但不执行CSS/JS、不加载外部资源,含样式或脚本的SVG需用Live Server在浏览器中预览。 一个常见的困扰是:VSCode 编辑器本身并不直接渲染 SVG 图形。如果不安装专

    怎么在VSCode中预览SVG矢量图-代码修改与实时渲染对比技巧
    怎么在VSCode中预览SVG矢量图-代码修改与实时渲染对比技巧

    怎么在VSCode中预览SVG矢量图-代码修改与实时渲染对比技巧 先说一个核心事实:VSCode 本身并不具备渲染 SVG 的能力。你在网上看到的所谓“实时预览”,本质上都是通过插件模拟或者绕道浏览器实现的。所以,当你双击一个 .svg 文件,看到的却是冷冰冰的 XML 源码时,别急着怀疑自己的设置

    SVG图像怎么打开?简单教程分享
    SVG图像怎么打开?简单教程分享

    SVG图像的打开方式取决于用途。1.浏览:可直接用Chrome、Firefox等浏览器打开,适合快速查看;2.编辑:使用AdobeIllustrator、Inkscape或AffinityDesigner等矢量图编辑软件,适合修改颜色、形状等;3.修改代码:可用Notepad++、VSCode等文本编辑器,适合有技术基础的开发者;4.在线编辑:使用SVG-Edit、BoxySVG等在线工具,无需安装软件但功能有限;5.代码编辑器预览:通过VSCode等支持SVG插件的编辑器预览,便于开发调试。SVG因其可

    如何从零开始搭建vue3项目
    如何从零开始搭建vue3项目

    说明记录一次Vue3的项目搭建过程。文章基于vue3.2.6和vite2.51版本,使用了ui库Elementplus,vue-router4,Layout布局封装,axios请求封装,别名配置等。开始1.使用vscode开发工具安装vue3的插件Volar,在vue2中我们使用的是Vetur。vue3在线code工具传送门sfc.vuejs.org/2.执行初始化及安装命令:npminitvite初始化vite此过程可以输入项目名、选择vue/react项目及js/ts环境选择,vue3已经完全支持ts

    vue3中getCurrentInstance怎么使用
    vue3中getCurrentInstance怎么使用

    父组件中:1.setup语法糖中导入子组件2.在子组件标签上绑定ref值3.setup内部从vue中按需导出getCurrentInstance方法4.调用getCurrentInstance方法导出proxy5.通过proxy.$refs.子组件ref名.子组件内属性/方法实现调用子组件count+1import{getCurrentInstance,ComponetInternalInstance,ref}from"vue";importChildfrom"./zi.vue";constchild=r

    怎么使用vue3搭建后台系统
    怎么使用vue3搭建后台系统

    首先使用npm或者yarn创建一个vue项目//使用npm创建一个基于vite构建的vue项目npmcreatevite@latest//使用yarn创建一个基于vite构建的vue项目yarncreatevite@latest在创建的构成中选择vuevue-ts创建完之后将项目拖到编译器打开一、配置vite在vite.config.ts文件中配置项目的服务数据,配置如下://此处配置项目服务参数server:{host:"0.0.0.0",//项目运行地址,此处代表localhostport:8888,

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。