Я играю с vue, vue-router и props, но теперь я не совсем уверен, правильно ли я поступаю.
У меня есть компонент входа, подобный этому, компонент входа должен ссылаться на что-то вроде entryDetails/:id :
запись.vue
<template>
<router-link :to="{name:'entryDetails', params:{id: this.id}}">
<h3>{{ title }}</h3>
<span>{{ subtitle }}<span>
</router-link>
</template>
<script>
export default {
props: {
id: Number,
title: String,
subtitle: String,
hours: Number
}
};
</script>
И компонент со списком записей:
entryList.vue
<template>
<div class="wrapper">
<entry :id="1" title="This is a title" subtitle="And a subtitle" :hours="3" />
<entry :id="2" title="Another title" subtitle="Another subtitle" :hours="8" />
<entry :id="3" title="Last title" subtitle="Last subtitle" :hours="1" />
</div>
</template>
<script>
import entry from "../entry.vue";
export default {
components: {
entry: entry
};
</script>
И теперь, когда я нажимаю на запись, я хочу перейти к entryDetails/:id, чтобы показать всю информацию в реквизитах. Что-то вроде этого:
записьDetails.vue
<template>
// Show data from props where id is :id from url
<div class="wrapper">
<h1>{{ title }}</h1>
<span>{{ subtitle }}</span>
<span>Hours: {{ hours }}</span>
</div>
</template>
<script>
// ??
</script>
Так ли это должно быть сделано? Если да, то как мне получить данные из моих реквизитов в entryDetails.vue после нажатия на запись?
Редактировать: был ответ (удален), что это легко с vuex, иначе это нужно сделать с параметрами. Vuex - это вариант для меня ... но я предпочитаю не использовать его сейчас.
router-view
. Оба, вероятно, могут считаться анти-паттернами. - person Dan   schedule 23.03.2020