vue3 + vite 使用 svg 可改变颜色

vue3 + vite 使用 svg

安装插件

npm install vite-plugin-svg-icons -D

npm install fast-glob -D

2、配置插件 vite.config.js

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
// 引入svg插件
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'

const pathResolve = (pathStr) => {
  return path.resolve(__dirname, pathStr)
}

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    createSvgIconsPlugin({
      // 指定需要缓存的svg图标文件夹,即需要识别的svg都应该放在这个文件夹下
      // iconDirs: [path.resolve(process.cwd(), 'src/assets/svgs')],
      // 或
      iconDirs: [pathResolve('./src/assets')],
      // 指定symbolId格式(这里的配置与6.2步骤中的引入svg组件的name配置项写法有关)
      symbolId: 'icon-[dir]-[name]',
    }),
  ],  
  resolve: {
    // 设置路径别名
    alias: {
      '@': pathResolve('./src'),
    }
  },
})


3、根据vite配置的svg图标文件夹,建好文件夹,把svg图标放入

在这里插入图片描述

4、在 src/main.js内引入注册脚本

import 'virtual:svg-icons-register'

在这里插入图片描述

5、创建一个公共SvgIcon.vue组件

src/components/SvgIcon.vue

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

<script>
import { defineComponent, computed } from 'vue'

export default defineComponent({
  name: 'SvgIcon',
  props: {
    // 使用的svg图标名称,也就是svg文件名
    name: {
      type: String,
      required: true,
    },
    prefix: {
      type: String,
      default: 'icon',
    }
  },
  setup(props) {
    const symbolId = computed(() => `#${props.prefix}-${props.name}`)
    return { symbolId }
  },
})
</script>
<style scope>
.svg-icon {
  width: 26px;
  height: 26px;
  fill: currentColor;
}
</style>

6.1 全局注册SvgIcon.vue组件

main.js中引入SvgIcon.vue组件,全局注册后在需要使用SvgIcon组件的地方将无需再引入。

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'

import 'virtual:svg-icons-register'

import SvgIcon from './components/SvgIcon.vue'


createApp(App).component('SvgIcon', SvgIcon).mount('#app')


6.2、在想要引入svg的vue组件中引入

已App.vue 示例


<template>
  
<!-- 使用不是在svgs目录中嵌套文件夹下的svg图标的name写法:写上svg图标文件名即可 -->
  <SvgIcon class="delete-icon" name="home-fill"></SvgIcon>
  <!-- 使用是在svgs目录中嵌套文件夹下的svg图标的name写法:中划线前面是文件夹名称,后面是svg图标文件名称 -->
  <!-- <SvgIcon class="edit-icon" name="msg-iconEdit"></SvgIcon> -->


</template>

<style lang="scss">
// 自定义svg颜色,宽高等样式
// 注意:这里之所以能自定义svg颜色,是因为我在.svg文件中把fill="xxx颜色值" 改为了fill="currentColor" (见下面第7步骤描述) 建议直接删掉 fill
.delete-icon {color: pink;}
.delete-icon:hover{
  color: blue;
}
</style>


7、如果想要用color控制svg图标颜色,那么需要修改.svg文件中的fill属性 建议直接删掉 fill

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用 Vite 创建一个 Vue 3 项目,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了 Node.js。您可以在命令行中输入 `node -v` 或 `node --version` 来检查是否安装了 Node.js,并查看版本号。如果没有安装,请前往 Node.js 官方网站(https://nodejs.org/)下载适合您操作系统的版本并进行安装。 2. 安装 Vite。打开命令行终端,并输入以下命令来全局安装 Vite: ``` npm install -g create-vite ``` 3. 创建 Vue 3 项目。在命令行终端中,进入您想要创建项目的文件夹,并运行以下命令: ``` create-vite my-vue3-project --template vue-ts ``` 这将创建一个名为 `my-vue3-project` 的文件夹,并在其中初始化一个 Vue 3 项目。 4. 进入项目文件夹。在命令行终端中,运行以下命令来进入新创建的项目文件夹: ``` cd my-vue3-project ``` 5. 安装项目依赖。命令行终端中,运行以下命令来安装项目所需的依赖: ``` npm install ``` 6. 启动开发服务器。在命令行终端中,运行以下命令来启动 Vite 的开发服务器: ``` npm run dev ``` 这将启动一个本地开发服务器,并在默认的浏览器中打开项目。您可以在浏览器中访问 `http://localhost:3000` 来查看项目运行情况。 现在,您已经成功创建了一个 Vue 3 项目并启动了开发服务器。您可以在项目中开始开发您的 Vue 3 应用程序。 希望以上信息对您有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值