J'ai une vue dynamique :
<div id="myview">
<div :is="currentComponent"></div>
</div>
avec une instance Vue associée :
new Vue ({
data: function () {
return {
currentComponent: 'myComponent',
}
},
}).$mount('#myview');
Cela me permet de modifier mon composant de manière dynamique.
Dans mon cas, j'ai trois composants différents : myComponent
, myComponent1
y myComponent2
. Et je passe de l'un à l'autre comme ça :
Vue.component('myComponent', {
template: "<button @click=\"$parent.currentComponent = 'myComponent1'\"></button>"
}
Maintenant, j'aimerais passer des props à myComponent1
.
Comment puis-je passer ces props lorsque je change le type de composant en myComponent1
?
0 votes
Vous passez les props via les attributs de l'élément
propName="propValue"
. C'est votre question ?0 votes
Je ne peux pas parce que je n'écris jamais
<myComponent1 propName="propValue">
Je modifie le composant de manière programmatique avec$parent.currentComponent = componentName
0 votes
Oui, mais vous écrivez
<div :is="currentComponent"></div>
. C'est là qu'il faut ajouter l'attribut.6 votes
Oui, mais les accessoires dépendent du composant. Par exemple,
myComponent1
prendre des accessoires etmyComponent2
ne prend pas d'accessoires