Vue3.2+Vite2.x+Typescript項(xiàng)目進(jìn)階搭建-Element-plus圖標(biāo)庫

安裝依賴

npm install @element-plus/icons-vue

全局注冊

main.ts代碼如下

import { createApp } from "vue";
import App from "./App.vue";
import "element-plus/lib/theme-chalk/el-message.css";

import * as ElIcons from "@element-plus/icons";

const app = createApp(App);
for (const name in ElIcons) {
  app.component(name, (ElIcons as any)[name]);
}

app.mount("#app");

代碼中使用

1.結(jié)合按鈕使用

<el-button type="primary" icon="Edit" >編輯</el-button>
<el-button
  size="mini"
  type="primary"
  class="inline-block"
  icon="More"
  title="詳情"
  @click="handleDetail(row.id)"
/>

2.結(jié)合el-icon使用

  <el-icon>
    <delete />
  </el-icon>

3.使用el-menu的文件

<template>
  <div>
    <el-scrollbar wrap-class="scrollbar-wrapper">
      <el-menu
        router
        :default-active="activeMenu"
        @open="handleOpen"
        @close="handleClose"
      >
        <template v-for="route in menuList" :key="route.path">
          <el-menu-item v-if="!route.children" :index="route.path">
            <el-icon>
              <component :is="route.meta.icon" />
            </el-icon>
            <span>{{ route.meta.title }}</span>
          </el-menu-item>
          <el-sub-menu v-else :index="route.path">
            <template #title>
              <el-icon>
                <component :is="route.meta.icon" />
              </el-icon>
              <span>{{ route.meta.title }}</span>
            </template>
            <el-menu-item
              v-for="subRoute in route.children"
              :key="subRoute.path"
              :index="subRoute.path"
            >
              <el-icon>
                <component :is="subRoute.meta.icon" />
              </el-icon>
              <span>{{ subRoute.meta.title }}</span>
            </el-menu-item>
          </el-sub-menu>
        </template>
      </el-menu>
    </el-scrollbar>
  </div>
</template>

<script lang="ts">
import { defineComponent, computed } from 'vue'
import { useRoute } from 'vue-router'
import { routes } from '@/router/index'

export default defineComponent({
  setup() {
    const route = useRoute()
    const activeMenu = computed(() => {
      const { meta, path } = route
      if (meta.activeMenu) {
        return meta.activeMenu
      }
      return path
    })
    const menuList = computed(
      () => (routes as any).find((item: any) => item.path === '/').children
    )
    return { activeMenu, menuList }
  },
})
</script>
  1. 表單中 prefix ,suffix 前置,后置圖標(biāo)使用
<el-form-item class="input-button">
  <div class="input">
    <el-input prefix-icon="Lock" suffix-icon="View" type="password" v-model="loginForm.password"
      autocomplete="off" placeholder="請輸入密碼">
      <template #prefix>
        <lock></lock>
      </template>
      <template #suffix>
        <View></View>
      </template>
    </el-input>
  </div>
</el-form-item>

局部引入,需要哪個圖標(biāo)引入哪個,因?yàn)閑lement-plus中每個圖標(biāo)都是一個組件來的。如:

import { User, Lock, View } from "@element-plus/icons-vue";
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容