Поле props
в Vue Router не содержит свойств, которые должны быть переданы компоненту визуализированного представления, а является логическим флагом (или хэшем / сопоставлением имен представлений с логическими флагами)это говорит Vue Router передавать любые параметры маршрута (проанализированные по пути) в качестве свойств для компонента.
Например, с учетом следующего:
конфигурация маршрута:
{
path: '/user/:name/:uid',
component: User,
props: true
}
User
определение компонента:
export default {
props: ['name', 'uid']
}
URL:
/user/john/123
Затем User
будет отображаться с name
, установленным на john
и uid
, установленным на 123
, что эквивалентно этому:
<User :name="john" :uid="123" />
Если вам нужно инициализировать представление с данными сервера, вы можете обернуть целевой компонент (например, с Type1View
), который вы инициализируете после получения данных.В приведенном ниже примере Type1.list
привязан к локальной переменной данных list
.Когда Type1View
монтируется, мы выбираем данные с сервера и сохраняем результат в list
, который также обновляет Type1.list
.
<template>
<div>
<Type1 :list="list" />
</div>
</template>
<script>
export default {
name: 'Type1View',
data() {
return {
list: []
}
},
async mounted() {
const data = await this.fetchData();
this.list = data.list;
}
}
</script>