Отже, я хочу передати реквізит компоненту Vue, але я очікую, що цей реквізит зміниться в майбутньому всередині цього компонента, наприклад, коли я оновлюю цей компонент Vue зсередини за допомогою AJAX. Тож вони призначені лише для ініціалізації компонента.
Мій cars-listелемент компонента Vue, куди я передаю реквізит із початковими властивостями single-car:
// cars-list.vue
<script>
export default {
data: function() {
return {
cars: [
{
color: 'red',
maxSpeed: 200,
},
{
color: 'blue',
maxSpeed: 195,
},
]
}
},
}
</script>
<template>
<div>
<template v-for="car in cars">
<single-car :initial-properties="car"></single-car>
</template>
</div>
</template>
То, як я це роблю зараз, це те, що всередині мого single-carкомпонента я призначаю this.initialPropertiesсвоєму this.data.propertiesна created()гачку ініціалізації. І це працює і реагує.
// single-car.vue
<script>
export default {
data: function() {
return {
properties: {},
}
},
created: function(){
this.data.properties = this.initialProperties;
},
}
</script>
<template>
<div>Car is in {{properties.color}} and has a max speed of {{properties.maxSpeed}}</div>
</template>
Але моя проблема в тому, що я не знаю, чи правильно це зробити? Хіба це не спричинить мені деяких неприємностей у дорозі? Або є кращий спосіб це зробити?
dataпередаєтеtwo-way, але ви не можете змінити отримане та перетворити на . Тоді що? Одне, що я дізнався, - це те, що вам слід передавати і викликати події. Тобто, якщо компонент хоче змінити отриманий, він повинен викликати подію і бути «повторно відтвореним». Але тоді у вас залишається прив’язка точно так само, як React, і я не бачу використання на той час. Досить заплутано.datapropspropspropsdatapropspropsone-waydata