ant-design-vue2.x动态渲染icon图标
input输入框样式的修改带搜索的输入框<a-input-search placeholder="搜索信息" @search="onSearch" class="search"/>修改背景色:项目用的是less、如果是在当前页面内直接写是不生效的!!!,这个样式要外部引入才会生效。比如我的就是在main.js中引入了全局的less样式,就把这个less写在全局less中就行了。// 带
·
1.x
版本中的图标渲染是这样子的
<a-icon type="question" />
2.x
版本中图标渲染:
<QuestionOutlined />
应用场景:侧边路由动态渲染图标
的2.x版本:
- 安装下icon图标
npm install --save @ant-design/icons-vue
- 新建一个
icon.ts
import { createVNode } from 'vue'
import * as $Icon from '@ant-design/icons-vue'
export const Icon = (props: { icon: string }) => {
const { icon } = props;
var antIcon: { [key: string]: any } = $Icon;
return createVNode(antIcon[icon]);
};
js版本
1. 新建一个
icon.js`
import { createVNode } from 'vue'
import * as $Icon from '@ant-design/icons-vue'
export const Icon = (props) => {
const { icon } = props;
var antIcon = $Icon;
return createVNode(antIcon[icon]);
};
- 引入并在组件中挂载:
import {Icon} from './Icon'
components:{
Icon
}
- 使用:
<Icon :icon="item.icon"></Icon>
<template v-for="item in list" :key="item.key">
<template v-if="!item.children">
<a-menu-item :key="item.key">
<Icon :icon="item.icon"></Icon>
<span>{{ item.title }}</span>
</a-menu-item>
</template>
<template v-else>
<sub-menu :menu-info="item" :key="item.key" />
</template>
</template>
数据:
const list = [
{
key: "1",
title: "Option 1",
icon:'VideoCameraOutlined'
},
{
key: "2",
title: "Navigation 2",
icon:'PieChartOutlined',
children: [
{
key: "2.1",
title: "Navigation 3",
icon:'UserOutlined',
children: [{ key: "2.1.1", title: "Option 2.1.1", icon:'MenuFoldOutlined'}],
},
],
},
];
更多推荐
已为社区贡献8条内容
所有评论(0)