博客
关于我
vue项目使用svg图片(svg-sprite-loader以及vue2-svg-icon的使用)
阅读量:327 次
发布时间:2019-03-04

本文共 2077 字,大约阅读时间需要 6 分钟。

使用 SVG 在 Vue 项目中优化图标加载

在 Vue 项目中优化 SVG 图标加载,可以通过两种主要方式实现:使用 svg-sprite-loadervue2-svg-icon。以下是具体的实现步骤和代码示例。

一、安装相关依赖

第一种方式:使用 svg-sprite-loader

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

第二种方式:使用 vue2-svg-icon

npm install vue2-svg-icon --save-dev

二、Webpack 配置

build/webpack.base.conf.js 中添加以下配置:

{  test: /\.svg$/,  loader: 'svg-sprite-loader',  include: [resolve('src/icons')],  options: {    symbolId: 'icon-[name]' // 生成的 ID 会去掉 "svg" 前缀  }},{  test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,  loader: 'url-loader',  exclude: [resolve('src/icons')],  options: {    limit: 10000,    name: utils.assetsPath('img/[name].[hash:7].[ext]')  }}

三、创建 SVG 组件(使用 svg-sprite-loader

代码示例

使用方法

在 Vue 组件中使用:

四、创建文件夹并注册 SVG 组件

1. 创建文件夹

创建 src/icons/svg 文件夹,存放所有 SVG 图标。

2. 在 index.js 中注册组件

import Vue from 'vue'import SvgIcon from '@/components/SvgIcon'// 注册 SVG 组件Vue.component('svg-icon', SvgIcon)// 自动导入 SVG 文件const req = require.context('./svg', false, /\.svg\$/)const requireAll = requireContext => requireContext.keys().map(requireContext)requireAll(req)

五、在 main.js 中引入

import Vue from 'vue'import App from './App'import router from './router'// 引入 SVG 组件import './icons'Vue.config.productionTip = falsenew Vue({  el: '#app',  router,  components: { App },  template: '
'})

六、使用 SVG 图标

单个使用示例

自动导入所有 SVG 文件

index.js 中:

import Vue from 'vue'import SvgIcon from '@/components/SvgIcon'Vue.component('svg-icon', SvgIcon)// 自动导入所有 SVG 文件const req = require.context('./svg', false, /\.svg\$/)const requireAll = requireContext => requireContext.keys().map(requireContext)requireAll(req)

七、使用 vue2-svg-icon 的第二种方法

1. 安装依赖

npm install vue2-svg-icon --save-dev

2. 在 main.js 中注册组件

import Vue from 'vue'import App from './App'import router from './router'// 导入 SVG 组件import Icon from 'vue2-svg-icon/Icon'Vue.component('icon', Icon)// 注意:默认存储位置为 `assets/svg/`,请确保路径正确

3. 使用方式

注意事项

  • 确保 SVG 文件名与配置一致,通常采用简短且有意义的命名方式。
  • 如果需要自定义大小或颜色,可以在组件中通过 props 传递。
  • 建议在开发环境中使用 svg-sprite-loader,生产环境中可以考虑优化 SVG 文件,减少 HTTP 请求。

通过以上方法,可以高效地在 Vue 项目中使用 SVG 图标,同时优化加载性能。

转载地址:http://bakh.baihongyu.com/

你可能感兴趣的文章
Objective-C实现完整的matrix矩阵类(附完整源码)
查看>>
Objective-C实现实现rabin karp算法(附完整源码)
查看>>
Objective-C实现对图像进行色调处理算法(附完整源码)
查看>>
Objective-C实现对称矩阵压缩存储(附完整源码)
查看>>
Objective-C实现寻找Find Lcm最小公倍数算法(附完整源码)
查看>>
Objective-C实现寻找HCF算法(附完整源码)
查看>>
Objective-C实现寻找无向图的关节点Articulation Points算法(附完整源码)
查看>>
Objective-C实现寻找欧拉路径/回路(附完整源码)
查看>>
Objective-C实现导弹跟踪算法(附完整源码)
查看>>
Objective-C实现将 b 除以模 n 的有效算法(附完整源码)
查看>>
Objective-C实现将 base64 字符串转换为字节数组算法(附完整源码)
查看>>
Objective-C实现将两个给定的字符串以O(n)的时间复杂度排列在一个字符串中算法(附完整源码)
查看>>
Objective-C实现将位转换为浮点数bitsToFloat算法(附完整源码)
查看>>
Objective-C实现将列表向右旋转 k 个位置算法(附完整源码)
查看>>
Objective-C实现将字符串中大写字母转换为小写字母(附完整源码)
查看>>
Objective-C实现将字符串从一个基转换为另一个基算法(附完整源码)
查看>>
Objective-C实现将字节数组转换为 base64 编码算法(附完整源码)
查看>>
Objective-C实现将彩色图像转换为负片算法(附完整源码)
查看>>
Objective-C实现将无符号整数n变成成d进制表示的字符串s(附完整源码)
查看>>
Objective-C实现将给定的 utf-8 字符串编码为 base-16算法(附完整源码)
查看>>