@Sulti
Учу javaScript

Как передать массив данных в тег component при динамическом переключении компонентов?

Учу Vue, хочу узнать как передать данные(которые находятся в массиве) в каждый отдельный компонент при динамическом переключении:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <style type="text/css">

</style>
</head>

<body>
	<div id="dynamic-app" style="width: 400px; overflow: auto;">
		<button v-for="compon in components" :key="compon" 
		@click="currentTab = compon">{{compon}}</button>
		<component :is="goTab" ></component>
	</div>
	<script src="vue.js"></script>
	<script src="workPlace1.js"></script>
</body>
</html>


"Use strict";

Vue.component('tab-one', {
	props:['text'],
	template: `<div> Это таб один </div>`
});
Vue.component('tab-two', {
	props:['text'],
	template: `<div> Это таб два </div>`
});
Vue.component('tab-three', {
	props:['text'],
	template: `<div> Это таб три </div>`
});
let app1 = new Vue({
	el: "#dynamic-app",
	data: {
		currentTab: "one",
		components:['one', "two", "three"],
		texts: ["Сегодня я увидел белый свет", "Потом пошел я прогуляться", "Пришел домой и я"]
	},
	computed: {
		goTab() {
			return "tab-" + this.currentTab.toLowerCase();
		}
	}
});
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
computed: {
  currentTabProps() {
    return {
      is: `tab-${this.currentTab}`,
      text: this.texts[this.components.indexOf(this.currentTab)],
    };
  },
},

<component v-bind="currentTabProps"></component>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы