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

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

使用 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 = false
new 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/

你可能感兴趣的文章
NPOI在Excel中插入图片
查看>>
NPOI将某个程序段耗时插入Excel
查看>>
NPOI格式设置
查看>>
NPOI设置单元格格式
查看>>
Npp删除选中行的Macro录制方式
查看>>
NR,NF,FNR
查看>>
nrf24l01+arduino
查看>>
nrf开发笔记一开发软件
查看>>
nrm —— 快速切换 NPM 源 (附带测速功能)
查看>>
nrm报错 [ERR_INVALID_ARG_TYPE]
查看>>
NS3 IP首部校验和
查看>>
NSDateFormatter的替代方法
查看>>
NSError 的使用方法
查看>>
nsis 安装脚本示例(转)
查看>>
NSJSON的用法(oc系统自带的解析方法)
查看>>
nslookup 的基本知识与命令详解
查看>>
NSOperation基本操作
查看>>
NSRange 范围
查看>>
NSSet集合 无序的 不能重复的
查看>>
NSURLSession下载和断点续传
查看>>