fix: compatibility with vetur

fc26c3106f
This commit is contained in:
潘嘉晨 2020-06-04 21:24:14 +08:00
parent 00c68bc5cd
commit aff349a863
1 changed files with 16 additions and 9 deletions

View File

@ -1,7 +1,5 @@
<template> <template>
<!-- eslint-disable vue/require-component-is --> <component :is="type" v-bind="linkProps(to)">
<component v-bind="linkProps(to)">
<slot /> <slot />
</component> </component>
</template> </template>
@ -16,19 +14,28 @@ export default {
required: true required: true
} }
}, },
computed: {
isExternal() {
return isExternal(this.to)
},
type() {
if (this.isExternal) {
return 'a'
}
return 'router-link'
}
},
methods: { methods: {
linkProps(url) { linkProps(to) {
if (isExternal(url)) { if (this.isExternal) {
return { return {
is: 'a', href: to,
href: url,
target: '_blank', target: '_blank',
rel: 'noopener' rel: 'noopener'
} }
} }
return { return {
is: 'router-link', to: to
to: url
} }
} }
} }