让我们从您的测试数据开始(只是稍微清理一下)假设您有两个按钮,因为您以后似乎想这样做。我还不确定 save : "show" 应该做什么——所以我尽力给出一个灵活的例子。
[{
'text': 'Save',
'click': function() { alert('save'); }
,{
'text': 'Delete',
'click': function() { alert('delete'); }
}]
不能说您的组件中有名为“控件”的测试数据
<controls :options="[{'text': 'Save','click': function() { alert('save'); },{'text': 'Delete','click': function() { alert('delete'); }}]"> </controls>
正如我们所见,您的控件有一个名为 options 的属性。因此,您的组件代码应如下所示:
<template>
<div class="controls">
<li class="controls__item" v-for="control in options">
<button class="btn" @click="control.click">{{ control.text }}</button>
</li>
</div>
</template>
<script>
export default {
props: ['options']
}
</script>
您需要定义要在组件上绑定的道具(选项)。选项现在根据我们的测试日期绑定。由于它是一个数组,我们可以使用 v-for 来循环它。然后我们将给定的文本绑定为按钮内容,并将给定的点击函数绑定为点击事件。
我希望这会有所帮助。