vue3使用本地icon和动态引入element-plus的icon

一.动态引入element-plus的icon

1.安装:

npm install @element-plus/icons-vue

2. 引入mian.ts

import * as ElIcons from '@element-plus/icons-vue'
// 全局注册element-plus icon图标组件
Object.keys(ElIcons).forEach((key) => {//循环遍历组件名称
  if ("Menu" !== key) {//如果不是图标组件不是Menu,就跳过,否则加上ICon的后缀
    app.component(key, ElIcons[key as keyof typeof ElIcons]);
  } else {
    app.component(key + "Icon", ElIcons[key]);  //MenuIcon
  }
})

3.使用

<el-icon>
  <component :is="icon[ind]"></component>
</el-icon>

const icon = ref(['user', 'setting', 'shop','menu-icon'])

二.动态使用本地icon

1.新建src/components/SvnIcon/index.vue

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

<script setup>
import {defineProps, computed} from "vue";

const props = defineProps({
  icon: {
    type: String,
    required: true
  }
})
const iconNAme = computed(()=>{
  return `#icon-${props.icon}`
})
</script>

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

2.新建src/icons/index.ts

import SvgIcon from '@/components/SvnIcon/index.vue'

const svgRequired = require.context('./svg', false, /\.svg$/)
svgRequired.keys().forEach((item: string) => svgRequired(item))
export default (app: any) => {
  app.component('svg-icon', SvgIcon)
}

3.新建src/icons/svg放入svg文件

4.main.ts引入

import SvgIcon from '@/icons'

SvgIcon(app)

5.使用

<svg-icon :icon="pwdShow ? 'eye-open' : 'eye'" @click="pwdShow=!pwdShow">
pwdShow 和eye-open为svg文件名

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Vue3 中使用 Element-Plus,你需要按照以下步骤进行配置: 1. 首先,安装 Element-Plus。你可以使用 npm 或者 yarn 来进行安装,具体命令如下: ``` npm install element-plus ``` 2. 在你的 main.js 文件中进行配置。导入 Element-Plus,并引入它的样式文件。最后使用 `createApp` 的 `use` 方法来注册 Element-Plus。示例如下: ```javascript import { createApp } from 'vue' import ElementPlus from 'element-plus' import 'element-plus/theme-chalk/index.css' createApp(App).use(ElementPlus).mount('#app') ``` 3. 现在你就可以在你的 Vue3 项目中使用 Element-Plus 的各种组件了。你可以按照 Element-Plus 的文档来使用它们。比如,如果你想使用 Icon 组件,你可以按照它的配置方式进行使用。 总结一下,要在 Vue3 中使用 Element-Plus,你需要先安装 Element-Plus,然后在 main.js 文件中导入并配置它,最后就可以在你的项目中使用 Element-Plus 的各种组件了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue3使用element-plus](https://blog.csdn.net/m0_66492535/article/details/128048780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [怎么在Vue3中正确使用ElementPlus,亲测有效,避坑](https://blog.csdn.net/qq_44017116/article/details/127713704)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值