@poroshok_uhodi

Как из компонента передать данные на другую страницу?

Изучаю Vue, делаю пробный сайт. У меня на странице отображается список компонентов. По клику на любой должен осуществляться переход на страницу на которой с зависимости от того по какому из них был клик будет добавляться информация.
Получается примерно такая картина:
6249ab52c42f7848798881.jpeg
код страницы
<template>
  <div class="container">
    <div class="services">
      <h1 class="services__heading">Практики</h1>
      <ul class="services__items">
        <PracticeComponent
          v-for="item in practices.items" 
          :key="item.title"
          :practicesData="item"
        />
      </ul>
    </div>
  </div>
</template>

<script>
import PracticeComponent from "../components/PracticeComponent.vue"

export default {
  data() {
    return {
      practices: {
        items: [
          {title: 'Строительство/Девелопмент', path: '/practices', src: require('../assets/img/services/over.svg')},
          {title: 'Земельный консалтинг', path: '/practices', src: require('../assets/img/services/over.svg')},
          {title: 'Сделки и инвестиции', path: '/practices', src: require('../assets/img/services/over.svg')},
          {title: 'Судебные споры', path: '/practices', src: require('../assets/img/services/over.svg')},
          {title: 'Due diligence/Аналитика', path: '/practices', src: require('../assets/img/services/over.svg')},
          {title: 'Налоговый консалтинг', path: '/practices', src: require('../assets/img/services/over.svg')},
          {title: 'Банкротство', path: '/practices', src: require('../assets/img/services/over.svg')},
        ]
      },
    }
  },
      components: {
        PracticeComponent,
      },
}
</script>

код компонента
<template>
		<router-link
			class="services__item"
			:to="practicesData.path"
			:title="title"
		>
			<img 
				:src="practicesData.src" 
				:alt="practicesData.title"
				class="services__item_img"
			>
			<p class="services__item_title">{{practicesData.title}}</p>
		</router-link>
</template>

<script>
	export default {
		data() {
			return {
				title: this.practicesData.title
			}
		},
		props: {
			practicesData: {
				type: Object,
				default: function () {
          return {}
        }
			},
		},
		mounted () {
			console.log(this.title);
		},
	}
</script>

Вторая страница шаблонная, она должна будет заполниться текстом по той тематике на которую нажмёт пользователь. конечно можно наклепать отдельные страницы для каждой темы, но я хотел бы узнать, можно ли как то динамически это сделать. Я пытался передать входной параметр, но не получилось.
Код страницы 2
<template>
	<div class="container">
		<div class="practices">
			<h2 class="practices__heading">Какое-нибудь хвалебное вступление!</h2>
			<p>Описание</p>
			<ul class="practices__items">
				<li class="practices__item">Разрешение споров в сфере строительства</li>
			</ul>
	</div>
	</div>
</template>

<script>
import practicItems from "../data/practicItems.js"
	export default {
		data() {
			return {
				practicItems: practicItems
			}
		},
		props: {
			title: {
				type: String,
				default: ''
      }
		}
	}
</script>
  • Вопрос задан
  • 265 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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