Problems with Vue child components cycling and receiving parent component values

read the Vue official website tutorial. In the dynamic components section, you see an example and want to implement it yourself, as shown in the following figure:

then I started working on the tab section:

<script src="//unpkg.com/vue">
</script>
<div id="dynamic-component-demo" class="demo">
  <!-- <button class="dynamic-component-demo-tab-button">
  Home
  </button>
  <button class="dynamic-component-demo-tab-button">
  Posts
  </button>
  <button class="dynamic-component-demo-tab-button dynamic-component-demo-tab-button-active">
  Archive
  </button> -->
  <tab-buttons  :tabs="tabs" v-for="(tab,index) in tabs" :key="index">
  </tab-buttons>
  <div class="dynamic-component-demo-tab">
    Archive component
  </div>
</div>
var tabButtons = {
  template: `<button class="dynamic-component-demo-tab-button"></button>`,
     props:{
        tabs:{
            type:Array
        }
     }   
};


new Vue({
  el:"-sharpdynamic-component-demo",
  data:{
    tabs:["Home","Posts","Archive"]
  },
  components:{
    "tab-buttons":tabButtons
  }
})
-sharpdemo,
.demo,
.content .demo {
  border: 1px solid -sharpeee;
  border-radius: 2px;
  padding: 25px 35px;
  margin-top: 1em;
  margin-bottom: 40px;
  font-size: 1.2em;
  line-height: 1.5em;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  overflow-x: auto;
}

-sharpdemo >:first-child,
.demo >:first-child,
.content .demo >:first-child {
  margin-top: 0;
}

.dynamic-component-demo-tab-button:hover {
  background: -sharpe0e0e0;
}

.dynamic-component-demo-tab-button {
  padding: 6px 10px;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
  border: 1px solid -sharpccc;
  cursor: pointer;
  background: -sharpf0f0f0;
  margin-bottom: -1px;
  margin-right: -1px;
}

.dynamic-component-demo-tab-button-active {
  background: -sharpe0e0e0;
}

online debugging address: https://jsrun.net/zQhKp

The problem with

is that I don"t know how to put values into the template of each individual subcomponent, looping and passing values are placed in tab-buttons. It seems that each tab-buttons receives a complete array value.

Nov.09,2021

:tabs="tabs"
Change

to

:tabs="tab"
Menu