From 251d2411f235e23209d57173857e05b637729ce8 Mon Sep 17 00:00:00 2001 From: LiuHao <liuhaoai545@gmail.com> Date: 星期日, 02 四月 2023 01:01:56 +0800 Subject: [PATCH] refactor ts --- src/components/SvgIcon/index.vue | 56 +++++++++++++++++++++++++------------------------------- 1 files changed, 25 insertions(+), 31 deletions(-) diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue index 8c101f6..661ae51 100644 --- a/src/components/SvgIcon/index.vue +++ b/src/components/SvgIcon/index.vue @@ -1,39 +1,33 @@ -<template> - <svg :class="svgClass" aria-hidden="true"> - <use :xlink:href="iconName" :fill="color" /> - </svg> -</template> - -<script> -export default defineComponent({ - props: { - iconClass: { - type: String, - required: true - }, - className: { - type: String, - default: '' - }, - color: { - type: String, - default: '' - }, +<script setup lang="ts"> +const props = defineProps({ + iconClass: { + type: String, + required: true }, - setup(props) { - return { - iconName: computed(() => `#icon-${props.iconClass}`), - svgClass: computed(() => { - if (props.className) { - return `svg-icon ${props.className}` - } - return 'svg-icon' - }) - } + className: { + type: String, + default: '' + }, + color: { + type: String, + default: '' + }, +}) +const iconName = computed(() => `#icon-${props.iconClass}`); +const svgClass = computed(() => { + if (props.className) { + return `svg-icon ${props.className}` } + return 'svg-icon' }) </script> +<template> + <svg :class="svgClass" aria-hidden="true"> + <use :xlink:href="iconName" :fill="color" /> + </svg> +</template> + <style scope lang="scss"> .sub-el-icon, .nav-icon { -- Gitblit v1.9.3