【发布时间】:2018-04-27 02:40:40
【问题描述】:
我刚开始使用 VueJS,我正在尝试移植一个简单的 jQuery 阅读更多我拥有的插件。
除了不知道如何访问slot 的内容外,我一切正常。我想做的是将传递给slot 的一些元素移动到div.readmore__wrapper 的正上方。
这可以简单地在模板中完成,还是我必须以其他方式完成?
到目前为止,这是我的组件...
<template>
<div class="readmore">
<!-- SOME ELEMENTS PASSED TO SLOT TO GO HERE! -->
<div class="readmore__wrapper" :class="{ 'active': open }">
<slot></slot>
</div>
<a href="#!" @click.prevent="toggle" class="readmore__button">Read {{ open ? lessLabel : moreLabel }}</a>
</div>
</template>
<script>
export default {
name: 'read-more',
data() {
return {
open: false,
moreLabel: 'more',
lessLabel: 'less'
};
},
methods: {
toggle() {
this.open = !this.open;
}
},
}
</script>
【问题讨论】:
-
使用命名槽?
-
@WaldemarIce - 我无法控制将哪些元素传递给插槽,因此在将它们传递给组件之前我无法将它们分解。他们将来自 CMS。我只说第一个元素是为了让示例保持简单,稍后可以对其进行配置。我已经更新了问题,使其不再关注第一个元素。
-
@WaldemarIce - 感谢您的建议。