先安装element-plus/icons
npm install @element-plus/icons-vue
图表使用较少的情况下采取方案1,不然采取方案2
方案1-按需引入:
<div class="flex">
<el-button type="primary" :icon="Edit" />
<el-button type="primary" :icon="Share" />
<el-button type="primary" :icon="Delete" />
<el-button type="primary" :icon="Search">Search</el-button>
<el-button type="primary">
Upload<el-icon class="el-icon--right"><Upload /></el-icon>
</el-button>
</div>
<script>
import { Edit,Share } from "@element-plus/icons-vue";
export default {
setup() {
return {
Edit,
Share
}
}
}
</script>
方案2-全局引入:对于大量使用icon的项目很友好
首先在main.ts中将所有icon全部引入并注册到项目中
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import * as ElIconList from '@element-plus/icons-vue'
for (const name in ElIconList) {
app.component(name, ElIconList[name])
}
import './assets/main.css'
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus' //导入ElementPlus
import 'element-plus/dist/index.css' //导入ElementPlus的CSS样式
import * as ElIconList from '@element-plus/icons-vue' //然导入并一次性添加所有的ElementPlus ICON
const app = createApp(App)
// 挂载icons所有图标
for (const name in ElIconList) {
app.component(name,(ElIconList as any) [name])
}
app.use(createPinia())
app.use(router).use(ElementPlus)
app.mount('#app')
然后在任意页面去使用(使用方案2最大的区别就是icon属性是直接赋值,而不是v-bind绑定(:icon))
<el-button type="primary" icon="Upload" />
<el-button type="primary" icon="Edit" />
<el-button type="primary" icon="Share" />
<el-button type="primary" icon="Delete" />
<el-button type="primary" :icon="Share" />