Vue est un framework JavaScript moderne pour la création d'interfaces Web. Il est apprécié par les développeurs pour sa simplicité et sa facilité d'utilisation, ses excellentes performances et sa documentation détaillée. Parmi eux, la liaison de données bidirectionnelle entre les composants parent et enfant est l'une des fonctions essentielles de la communication des composants Vue. Elle peut transférer rapidement l'état du composant au composant enfant, surveiller les changements dans l'état du composant enfant et l'alimenter. revenir au composant parent, complétant ainsi le flux de données bidirectionnel. Cet article présentera la méthode d'implémentation de la fonction de liaison de données bidirectionnelle du composant parent-enfant dans le document Vue.
Pour transférer des données entre les composants parent et enfant, vous pouvez utiliser les méthodes props et $emit, où props est le paramètre de composant de Vue et est utilisé pour transférer des données du composant parent vers le composant enfant, tandis que la méthode $emit est Vue La méthode de communication de l'instance, utilisée pour transmettre les données du composant enfant au composant parent. Si vous devez implémenter une liaison de données bidirectionnelle, vous devez ajouter le modificateur .v-model aux accessoires du composant parent et déclencher l'événement d'entrée dans le composant enfant pour mettre à jour la valeur du composant parent.
Ce qui suit est un exemple de composant parent-enfant qui implémente une liaison de données bidirectionnelle :
// 父组件 <template> <div> <label>姓名:</label> <input v-model="name"> <ChildComponent v-model="name"></ChildComponent> </div> </template> <script> import ChildComponent from './ChildComponent.vue' export default { components: { ChildComponent }, data() { return { name: '' } } } </script> // 子组件 <template> <div> <label>子组件输入:</label> <input type="text" :value="value" @input="updateValue($event.target.value)"> </div> </template> <script> export default { props: { value: String }, methods: { updateValue(value) { this.$emit('input', value) } } } </script>
Dans le composant parent, nous définissons une variable nommée name et la transmettons à l'enfant ComponentChildComponent. Dans le composant enfant, nous utilisons des accessoires pour recevoir la valeur transmise par le composant parent, et utilisons le modificateur v-model pour implémenter une liaison de données bidirectionnelle, lions la valeur du composant enfant à la variable de nom du composant parent et utilisez la méthode $emit pour déclencher l'événement d'entrée, en transmettant la valeur dans le composant enfant.
Il convient de noter que lorsque vous utilisez le modificateur v-model dans les accessoires, vous devez non seulement définir l'attribut value pour recevoir la valeur transmise par le composant parent, mais également définir une valeur nommée value dans le composant enfant L'attribut calculé est utilisé pour lier la valeur de la zone de saisie dans le composant enfant. Lorsque la valeur de la zone de saisie change, utilisez la méthode updateValue pour déclencher l'événement d'entrée et transmettre la nouvelle valeur du composant enfant au composant parent pour mise à jour.
En plus d'utiliser le modificateur v-model pour implémenter la liaison de données bidirectionnelle, Vue fournit également le modificateur .sync pour simplifier le code et le rendre plus facile à lire, à écrire et à comprendre. Dans le composant parent, nous remplaçons simplement v-model par : value.sync:
<template> <div> <label>姓名:</label> <input :value.sync="name"> <ChildComponent :value.sync="name"></ChildComponent> </div> </template>
Dans le composant enfant, nous utilisons simplement la méthode this.$emit('update :value', value) pour déclencher l'événement update, qui peut transmettre la valeur du composant enfant au composant parent pour mise à jour.
La méthode d'implémentation de la fonction de liaison de données bidirectionnelle des composants parent-enfant dans le document Vue nous fournit une méthode de communication de composants pratique, rapide et efficace grâce à l'utilisation de modificateurs v-model et .sync, rendant le application Le flux bidirectionnel de données peut être obtenu plus facilement pendant le développement du programme.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!