vue中写svg组件svg图片加载不出来

这篇具有很好参考价值的文章主要介绍了vue中写svg组件svg图片加载不出来。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue中写svg组件svg图片加载不出来

结构
svg-icon 不出来,vue,js,vue.js,javascript,前端

首先要安装3个插件:svg-sprite-loader,svgo,svgo-loader

npm install svg-sprite-loader -S
npm install svgo -S
npm install svgo-loader -S

package.json
svg-icon 不出来,vue,js,vue.js,javascript,前端
src/icons/index.js

import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon'// svg组件

// register globally
Vue.component('svg-icon', SvgIcon)

const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context('./svg', false, /\.svg$/)
requireAll(req)

src/components/SvgIcon/index.vue

<template>
  <svg :class="svgClass" aria-hidden="true">
    <use :xlink:href="iconName"></use>
  </svg>
</template>

<script>
export default {
  name: 'svg-icon',
  props: {
    iconClass: {
      type: String,
      required: true
    },
    className: {
      type: String
    }
  },
  computed: {
    iconName() {
      return `#icon-${this.iconClass}`
    },
    svgClass() {
      if (this.className) {
        return 'svg-icon ' + this.className
      } else {
        return 'svg-icon'
      }
    }
  }
}
</script>

<style scoped>
.svg-icon {
  width: 1.2em;
  height: 1.2em;
  vertical-align: -0.18em;
  fill: currentColor;
  overflow: hidden;
}
</style>

main.js

import '@/icons' // icon

vue.config.js文章来源地址https://www.toymoban.com/news/detail-612794.html

const path = require('path')
module.exports = {
  chainWebpack: config => {
    // 给svg规则增加⼀个排除选项
    config.module
      .rule('svg')
      .exclude.add(path.resolve(__dirname, './src/icons'))

    // 新增icons规则,设置svg-sprite-loader处理icons⽬录中的svg
    config.module
      .rule('icons')
      .test(/\.svg$/)
      .include.add(path.resolve(__dirname, './src/icons'))
      .end()
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({ symbolId: 'icon-[name]' })
      .end()
      .use('svgo-loader')
      .loader('svgo-loader')

    // config.resolve.alias.set('@img', path.resolve(__dirname, 'src/assets/img/'))
  },
}

到了这里,关于vue中写svg组件svg图片加载不出来的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 组件中写选项的顺序(vue的问题)

    为什么选项要有统一的书写顺序呢?很简单,就是要将选择和认知成本最小化。 副作用  (触发组件外的影响) el 全局感知  (要求组件以外的知识) name parent 组件类型  (更改组件的类型) functional 模板修改器  (改变模板的编译方式) delimiters comments 模板依赖  (模板内使用的资源

    2024年01月18日
    浏览(5)
  • vue项目使用svg图片

    vue项目使用svg图片

    (svg-sprite-loader以及vue2-svg-icon的使用) 第一种方式: 1、 安装svg-sprite-loader          npm install svg-sprite-loader --save-dev 2、 webpack 配置(build/webpack.base.conf.js)          3、 创建svg的组件           4、 创建文件夹存放svg的图标,同时注册svg组件到vue里面(index.js) 单

    2023年04月10日
    浏览(7)
  • 在vue中使用svg(组件)

    在vue中使用svg(组件)

    vue项目中使用svg,有以下步骤: 1、安装  svg-sprite-loader  依赖 2、在  src  目录下新建  src/icons/svg  目录,存放项目所使用的所有图标  svg  文件      在  vue-config.js  中添加配置: 3、创建组件  components/SvgIcon.vue isExternal文件及作用 4、在  src/icons  目录下创建  icons  文

    2024年02月16日
    浏览(8)
  • vue项目成功启动但页面加载不出来

    vue项目成功启动但页面加载不出来

    vue项目成功启动但页面加载不出来,网上找了好久,都不对; 1。页面空白        2.路由地址错误          3.为加路由占位符         4地址多写‘/’等都不是   最后才发现时我把routes写成了routers

    2024年02月14日
    浏览(7)
  • svg之全局组件,配合雪碧图解决vue2的svg优化问题

    svg之全局组件,配合雪碧图解决vue2的svg优化问题

    这里是vue2中的svg的完整解决方案的另一篇。 这里这个就是全局的svg组件,代码来自于webpack - 懒人神器:svg-sprite-loader实现自己的Icon组件 - 好好写代码吧 - SegmentFault 思否 老师的代码则是写成 这样的形式。其实和上面一个意思

    2024年02月19日
    浏览(30)
  • 安装vite-plugin-svg-icons

    安装vite-plugin-svg-icons

    找不到合适的图标,如何使用其他的svg图标? 安装vite-plugin-svg-icons 使用svg-icon,即可使用iconfont等svg图标库 npm i vite-plugin-svg-icons npm i fast-glob 六、最后在需要的文件中使用图标 示例在面包屑组件中引用

    2024年02月14日
    浏览(7)
  • 记录--为什么推荐用svg而不用icon?

    记录--为什么推荐用svg而不用icon?

    使用背景: 1.因为svg图标在任何设备下都可以高清显示,不会模糊。而icon会在显卡比较低的电脑上有显示模糊的情况 2.svg图标在页面render时 速度会比icon稍微快一点 3.实现小程序换肤功能 ;方案见:www.yuque.com/lufeilizhix… SVG基础可参考:www.yuque.com/lufeilizhix… inline svg是目前前

    2024年02月08日
    浏览(8)
  • Vue 3使用 Iconify 作为图标库与图标离线加载的方法、 Icones 开源在线图标浏览库的使用

    Vue 3使用 Iconify 作为图标库与图标离线加载的方法、 Icones 开源在线图标浏览库的使用

    之前一直naive-ui搭配使用的是xicons,后来发现Iconify支持的图标合集更多,因此转而使用Iconify。 与FontAwesome不同的是,Iconify配合Icones相当于是一个合集,Iconify提供了快捷引入图标的方式,而Icones是一个大的图标库,收集了大量MIT协议、Apache 2.0开源的图标文件。 Iconify 支持的框

    2024年02月08日
    浏览(8)
  • 【Jetpack】DataBinding 架构组件 ④ ( 使用 @BindingAdapter 注解为布局组件绑定自定义逻辑 | 网络图片加载 | 本地图片加载 )

    【Jetpack】DataBinding 架构组件 ④ ( 使用 @BindingAdapter 注解为布局组件绑定自定义逻辑 | 网络图片加载 | 本地图片加载 )

    博客源码 : https://download.csdn.net/download/han1202012/87701531 BindingAdapter 是 DataBinding 数据绑定技术 的组成部分 ; 借助 @BindingAdapter 注解 可以 将自定义逻辑 绑定到 DataBinding 布局中 ; 在 DataBinding 布局中 , 不只是机械性的显示内容 或者 拼接内容 , 还需要 进行更复杂的操作 ; 如 : 为 I

    2023年04月12日
    浏览(12)
  • vue3 vue.config.js配置Element-plus组件和Icon图标实现按需自动引入

    vue3 vue.config.js配置Element-plus组件和Icon图标实现按需自动引入

    打包时,报警告,提示包太大会影响性能 在页面直接使用,直接使用 SVG 图标,当做一般的 svg 使用 icon使用时需要用以下两种方式方式: 如果用在el-button里面的icon属性上使用,用SVG方式无效,还是需要引入再使用(不知道有没有其他方式) 注意: 使用 :icon=\\\"Edit\\\" 则icon的大

    2024年02月06日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包