[英]Conditional Root Tag on Vue Component
我有一个渲染内容的 Vue 组件,如下所示:
<template>
<div class="item">
<h1>{{ title }}</h1>
<p>{{ contents }}</p>
<!-- Lot's of other stuff... -->
</div>
</template>
<script>
// export default...
</script>
<style lang="scss">
// style...
</style>
注意div
中的内容...
在某些情况下,我需要将<div class="item">
更改为<a class="item">
。 考虑到这一点,有没有办法有条件地更改 Vue 组件的根元素的标签(例如a
、 div
)?
我在网上搜索并能够找到有关使用render
功能的信息,如下所示:
render (createElement) {
return createElement(this.tag, {}, this.$slots.default);
}
我对上述问题的看法是,这意味着我需要两个单独的组件,例如; Item.vue
和ItemTag.vue
。 当然有一种方法可以用一个组件来做到这一点?
我相信你可以使用is
:
<div :is="useA ? 'a' : 'div'">
...
</div>
这并不是文档所建议的,但它似乎确实具有预期的效果。
https://v2.vuejs.org/v2/api/#is
使用render
函数不一定需要您有两个组件,但它需要您将整个模板重写为render
函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.