Ich möchte also Requisiten an eine Vue-Komponente übergeben, aber ich erwarte, dass sich diese Requisiten in Zukunft innerhalb dieser Komponente ändern, z. B. wenn ich diese Vue-Komponente mithilfe von AJAX von innen aktualisiere. Sie dienen also nur zur Initialisierung der Komponente.
Mein cars-listVue-Komponentenelement, an das ich Requisiten mit anfänglichen Eigenschaften übergebe 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>
So wie ich es jetzt single-carmache, ordne ich es in meiner Komponente this.initialPropertiesmeinem this.data.propertiesOn- created()Initialisierungs-Hook zu. Und es funktioniert und ist reaktiv.
// 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>
Aber mein Problem dabei ist, dass ich nicht weiß, ob das der richtige Weg ist? Wird es mir nicht Probleme auf der Straße bereiten? Oder gibt es einen besseren Weg, dies zu tun?
dataisttwo-wayverpflichtet, aber man kann nicht passieren ,dataum Komponenten, Sie passierenprops, aber man kann nicht die empfangene ändernpropsnoch wandeln daspropszudata. Dann was? Eine Sache, die ich gelernt habe, ist, dass SiepropsEreignisse weitergeben und auslösen sollten . Das heißt, wenn die Komponente denpropsEmpfang ändern möchte , sollte sie ein Ereignis aufrufen und "neu gerendert" werden. Aber dann bleibt dir eineone-wayBindung genau wie bei React und ich sehe die Verwendung fürdatadann nicht. Ziemlich verwirrend.