在父母Vuejs中改变孩子的道具

Moh*_*asi 0 html javascript vue.js vuejs2 vuetify.js

所以我有一个带有四个标签的Tabs.vue组件:

<template>
.
.
      <v-tab href="#tab-1" @click="showFirstTabFunc">
        First Tab
        <v-icon>check_box_outline_blank</v-icon>
      </v-tab>

      <v-tab href="#tab-2" @click="showSecondTabFunc">
        Second Tab
        <v-icon>indeterminate_check_box</v-icon>
      </v-tab>

      <v-tab href="#tab-3" @click="showThirdTabFunc">
        Third Tab
        <v-icon>memory</v-icon>
      </v-tab>

      <v-tab href="#tab-4" @click="showTabFourFunc">
        Fourth Tab
        <v-icon>list_alt</v-icon>
      </v-tab>
.
.   
</template>

<script>
.
.
  methods:{
   showFirstTabFunc(){
   },
   showSecondTabFunc(){
   },
   showThirdTabFunc(){
   },
   showFourthTabFunc(){
   },
.
.
</script>
Run Code Online (Sandbox Code Playgroud)

现在我有父组件App.vue,其中包含:

<template>
.
.
   <app-tabs></app-tabs>
.
.
</template>

<script>
    import Tabs from "./Tabs.vue";
    export default {
      data() {
        return {
         showFirstTab: false,
         showSecondTab: false,
         showThirdTab: false,
         showTabFour: false,
         }
        },
       components:{
        appTabs: Tabs
        }
     }
</script>
Run Code Online (Sandbox Code Playgroud)

我的目标是点击让我们说第一个标签在Tabs.vue并借此改变从假"showFirstTab"为true App.vue.然后,如果我单击Tabs.vue中的第二个选项卡,App.vue中的 "showFirstTab" 变为false,"showSecondTab"将变为true,依此类推.

PS是的我必须将这些道具保留在父组件中.

itt*_*tus 5

您可以向父级发出事件

showFirstTabFunc () {
  this.$emit('setActiveTab', 'showFirstTab')
}
Run Code Online (Sandbox Code Playgroud)

在父母

<app-tabs @setActiveTab="setActiveTab"></app-tabs>

methods: {
  setActiveTab (activeTab) {
    this.showFirstTab = false
    this.showSecondTab = false
    this.showThirdTab = false
    this.showTabFour = false
    this[activeTab] = true
  }
}
Run Code Online (Sandbox Code Playgroud)