Files
Web_Template_Vue3_Dev/library/components/VabLink/index.vue

28 lines
615 B
Vue
Raw Normal View History

<script lang="ts" setup>
import { isExternal } from '@/utils/validate'
const props = defineProps({
to: {
type: String,
required: true,
},
})
const type = computed(() => (isExternal(props.to) ? 'a' : 'router-link'))
const linkProps = () =>
isExternal(props.to)
? {
href: props.to,
target: '_blank',
rel: 'noopener',
}
: { to: props.to }
</script>
<template>
<component :is="type" v-bind="linkProps()">
<slot />
</component>
</template>