J'ai besoin de transmettre une variable à un composant. Ma configuration est la suivante:
Principal: Meet.vue
export default { data () { return { search: [how to access the **searchTerm** here?]
Sous: Category.vue :
<html> <div class="carousel-cell"> <Category :searchTerm="woman"></Category> </div> <div class="carousel-cell"> <Category :searchTerm="men"></Category> </div> [..] <script> import Category from './Category' export default { components: { Category },
Comment accéder au searchTerm
depuis Meet.vue dans Category.vue?
3 Réponses :
Vous utilisez des props , donc la réponse est:
export default{ props: ['searchTerm'],
il peut ensuite être utilisé directement.
Faites comme ci-dessous en appelant le composant Category
.
Ici : search: "woman"
signifie mot de passe woman
comme valeur de la propriété du composant Category
.
Puis dans le composant Category
:
export default { props: [search], //No checking of data type and it's not requried //Everything else
ou
export default { props: { search: {type: string, required: true} //Here it will give error if the search is passed anything but string //And if search is not passed it will give error. } //Everything else
p >
Vous devrez introduire cette propriété searchTerm
dans votre composant Category comme décrit dans le Documentation VueJS
Dans Category.vue
props: ['searchTerm'], data: function () { return { // Write on search variable if needed search: this.searchTerm } }
Si vous voulez en appliquer validation sur votre accessoire
export default { props: { searchTerm: { type: String, required: false, // If not required, it's possible to give a default value default: "woman" }, } // Your component code (computed, methods, watch, ...) }
Vous pouvez ensuite lire votre accessoire avec this.searchTerm
.
Vous pouvez également le lire directement dans
avec {{searchTerm}}
par exemple.
Si à certains point que vous devrez écrire sur l'un de vos accessoires, il est préférable de copier sa valeur sur une variable locale et de travailler avec elle
export default { props: ['searchTerm'], // Your component code (computed, methods, watch, ...) }
Merci pour cet exemple. Existe-t-il un moyen de transmettre le searchTerm après sa modification dans le meet.vue ? J'ai essayé v-bind sans succès:
@Tom Je vous suggère de regarder votre accessoire dans votre composant Catégorie. Vous pouvez avoir un exemple ici stackoverflow.com/questions/44584292/… - et vous pouvez consulter la documentation pour comprendre comment cela fonctionne: vuejs.org/v2/guide/computed.html#Computed-vs-Watched-Propert y
stackoverflow.com/questions/39199303/...