在这种情况下,您可以使用 props,这是一种将数据传递给“子”组件的方式。
https://vuejs.org/v2/guide/components-props.html
示例
App.vue
<template>
<div id="app">
<SingleComponent :button="button" />
</div>
</template>
<script>
import SingleComponent from "@/components/SingleComponent.vue";
// @/ means src/
export default {
name: "App",
components: {
SingleComponent,
},
data: () => ({
button: 2,
}),
};
</script>
SingleComponent.vue
<template>
<div>
<button v-if="button === 0">...</button>
<button v-else-if="button === 1">...</button>
<button v-else-if="button === 2">...</button>
<button v-else-if="button === 3">...</button>
</div>
</template>
<script>
export default {
name: "SingleComponent",
props: {
button: {
type: Number,
required: true,
},
},
};
</script>
您还应该看看 slots,它在 Vue.js 中非常重要,也可以解决您的问题。
https://vuejs.org/v2/guide/components-slots.html