Как отображать разный контент на разных вкладках в vueJS

Я пытаюсь создать веб-сайт, используя структуру vueJS и шаблон vuetify. Я хочу отображать разный контент на разных вкладках. Я написал код, но на всех трех вкладках отображается одно и то же содержимое. Как мне это сделать? Я прикрепил код здесь.

  <v-tabs
    centered
    color="deep-purple accent-1"
    slot="extension"
    slider-color="yellow"
    v-model="model"
  >
    <v-tab href="#tab-1">
    Solar Panels
   </v-tab>

   <v-tab href="#tab-2">
   CCTV Panels
  </v-tab>

  <v-tab href="#tab-3">
  LED Lights
 </v-tab>
 </v-tabs>

 <v-tabs-items>
   <v-tabs-content id="tab-1">
     <v-card flat>
       <v-card-text>This is the first tab</v-card-text>
     </v-card>
   </v-tabs-content>
   <v-tabs-content id="tab-2">
     <v-card flat>
       <v-card-text>This is the second tab</v-card-text>
     </v-card>
   </v-tabs-content>
   <v-tabs-content id="tab-3">
     <v-card flat>
       <v-card-text>This is the third tab</v-card-text>
     </v-card>
   </v-tabs-content>
 </v-tabs-items>


person Rohit Thulasirm    schedule 12.04.2018    source источник


Ответы (3)


Раньше у меня была такая же проблема. смотри попробуй это.

Основные вкладки состоят из серии заголовков и соответствующего содержимого, относящегося к каждому заголовку. Определение отдельных компонентов выполняется динамически с использованием цикла for для создания вкладок.

<v-tabs
          fixed-tabs
          v-model="tab"
        >
          <v-tabs-slider color="amber darken-3"></v-tabs-slider>
          <v-tab
            v-for="(item, index) in items"
            :class="{active: currentTab === index}"
            @click="currentTab = index"
            :key="item"
          >
            {{ item }}
          </v-tab>
        </v-tabs>

       // Display different content here
        <v-tabs-items v-model="tab">
          <v-card flat>            
            <div v-show="currentTab === 0"><v-card-text>Tab0 content</v-card-text></div>
            <div v-show="currentTab === 1"><v-card-text>Tab1 content</v-card-text></div>
            <div v-show="currentTab === 2"><v-card-text>Tab2 content</v-card-text></div>
            <div v-show="currentTab === 3"><v-card-text>Tab3 content</v-card-text></div>
            <div v-show="currentTab === 4"><v-card-text>Tab4 content</v-card-text></div>
          </v-card>
        </v-tabs-items>
      </v-card>


export default {
   data () {
     return {
      currentTab: 0,
      tab: null,
      items: ['tab0', 'tab1', 'tab2', 'tab3', 'tab4'],
     }
  }

person Eric Mosvel    schedule 06.02.2019

На мой взгляд, у Vuetify отличная документация, и ей легко следовать.

Из вкладок vuetify

часть "html"

<div id="app">
  <v-app id="inspire">
    <div>
      <v-tabs
        v-model="active"
        color="cyan"
        dark
        slider-color="yellow"
      >
        <v-tab
          v-for="n in 3"
          :key="n"
          ripple
        >
          Item {{ n }}
        </v-tab>
        <v-tab-item
          v-for="(text, index) in texts"
          :key="index"
        >
          <v-card flat>
            <v-card-text>{{ text }}</v-card-text>
          </v-card>
        </v-tab-item>
      </v-tabs>

      <div class="text-xs-center mt-3">
        <v-btn @click.native="next">next tab</v-btn>
      </div>
    </div>
  </v-app>
</div>

часть "javascript(vue)":

new Vue({
  el: '#app',
  data () {
    return {
      active: null,
      texts: ['first tab', 'second tab', 'third tab']
    }
  },
  methods: {
    next () {
      const active = parseInt(this.active)
      this.active = (active < 2 ? active + 1 : 0).toString()
    }
  }
})

Обратите внимание, что это немного изменено из примера документации vuetify

person roli roli    schedule 12.04.2018
comment
Эй, спасибо за ваш ответ! Но фрагмент кода, который вы предоставили для части javascript, не компилируется и выдает ошибку в части «parseInt». Как решить эту проблему? Кроме того, я тщательно проверил документацию vuetify и, похоже, не нашел примера, где на разных вкладках отображается разная информация. Пожалуйста, дайте мне ссылку, если я ошибаюсь, чтобы я мог учиться. - person Rohit Thulasirm; 12.04.2018
comment
Кроме того, что, если я хочу назвать свои вкладки отдельно вместо «Элемент 1», «Элемент 2» и т. д.? - person Rohit Thulasirm; 12.04.2018
comment
Да, это решение. Но я думаю, что ответил на ваш вопрос. - person roli roli; 12.04.2018

person    schedule
comment
Пожалуйста, добавьте некоторые подробности о том, как ваш ответ решил эту проблему для будущих посетителей. - person Syed Mehtab Hassan; 24.02.2020
comment
Он отлично работает, когда вы пытаетесь включить некоторый html-контент непосредственно в v-контейнер без использования данных скрипта. - person Kovvuri nagi reddy; 25.02.2020