1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| <template>
| <svg class="svg-class" :class="svgClassName">
| <use :href="svgIcon"></use>
| </svg>
| </template>
| <script>
| import { ref, computed } from "vue";
| export default {
| name: "SvgIcon",
| props: {
| iconName: {
| type: String,
| default: ""
| },
| className: {
| type: String,
| default: ""
| }
| },
| setup(props){
| // className
| const svgClassName = ref(props.className);
| // svg 图标
| const svgIcon = computed(() => `#icon-${props.iconName}`);
| return {
| svgClassName,
| svgIcon
| }
| }
| }
| </script>
| <style lang="scss">
| .svg-class {
| width: 1em;
| height: 1em;
| fill: currentColor;
| }
| </style>
|
|