//main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import { createPinia } from 'pinia'
import Antd from 'ant-design-vue'
import * as antIcons from '@ant-design/icons-vue' // 引入ant icons
import 'ant-design-vue/dist/antd.css';
const app = createApp(App);
const antIconsList: any = antIcons; // 重新赋值定义类型 避免后续遍历注册组件的时候ts报错
// 注册组件
// Object.keys(antIconsList).forEach(key => {
// app.component(key, antIconsList[key])
// })
for (const key in antIconsList) {
app.component(key, antIconsList[key])
}
app.config.globalProperties.$antIcons = antIcons; // 挂在到vue实例上
app.use(router).use(createPinia()).use(Antd).mount('#app')
<component :is="proxy.$antIcons[item.meta.icon]" />
// .vue
import { getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
// route.ts
export const Home = [
{
path: '/index',
name: 'index',
meta: {
title: '首页',
hide: false,
icon: 'HomeOutlined' // 引入ant 的icon名称
},
redirect: `/home`,
component: () => import('../views/home/index.vue'),
children: [
{
path: '/home',
name: 'home',
meta: {
title: '系统首页',
hide: false
},
component: () => import('../views/home/home.vue')
}
]
}
]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)