Faire en sorte que les composants Vue soient restitués via des valeurs de variables réactives. Découvrez comment dans cet article.
Parfois, nous avons besoin d’un nouveau rendu de nos composants Vue ; cependant, Vue peut ne pas toujours restituer nos composants comme prévu ou quand nous le souhaitons.
Dans cet article, nous verrons comment forcer le rendu d’un composant Vue à l’aide de variables réactives.
La réactivité de Vue
Les composants Vue seront restitués si nous mettons à jour les valeurs dans les variables réactives.
pour définir le count variable réactive et définissez sa valeur initiale sur 0 en appelant ref.
Ensuite, nous ajoutons un écouteur d’événement de clic au bouton pour incrémenter countla valeur. En conséquence, lorsque nous cliquons sur le bouton, count est incrémenté de 1.
Le ref La fonction est utilisée pour définir un état réactif dans l’API Vue Composition, qui déclenche le rendu du composant lorsque ce qu’il renvoie change de valeur.
Pour faire la même chose avec l’API Vue Options, on déclare une valeur réactive en la mettant dans l’objet renvoyé par le data méthode.
nous mettons count dans l’objet retourné par le data et définissons sa valeur initiale à 0. Et dans le bouton, on fait la même chose que précédemment pour incrémenter count par 1 quand on clique dessus.
Dans Vue 3, toutes les valeurs réactives sont enveloppées dans un objet proxy et Vue surveille les modifications dans les modifications du proxy pour détecter les modifications dans les valeurs réactives.
Les proxys JavaScript nous permettent d’intercepter et de redéfinir les opérations fondamentales pour l’objet à partir duquel nous créons un proxy.
Pour créer un proxy JavaScript, nous utilisons le Proxy constructeur. Par exemple, nous écrivons :
pour créer le target objet à partir duquel nous créons un proxy. Ensuite, nous utilisons le Proxy constructeur pour créer un objet proxy pour target.
Le handler l’objet a le get et set méthodes, qui interceptent l’opération permettant d’obtenir les valeurs des propriétés et de les définir, respectivement.
Dans le get méthode, nous renvoyons le target[prop]qui est la valeur de prop propriété dans l’objet. prop a la chaîne de nom de propriété, et target est le target objet à partir duquel nous avons créé le proxy.
Dans setnous appelons Reflect.set pour régler le obj valeurs prop propriété à la value valeur. obj est l’objet à partir duquel nous avons créé le proxy, et prop est la chaîne avec le nom de la propriété. value est la valeur à laquelle nous définissons la propriété de l’objet.
À partir des journaux de la console, nous pouvons voir get est appelé lorsque nous essayons d’obtenir une valeur de propriété à partir du proxy objet. Et lorsque nous définissons la propriété dans un objet proxy, le set la méthode est appelée.
Nous pouvons changer ce qui est renvoyé par get et set pour modifier les opérations d’obtention et de définition des valeurs des propriétés d’objet.
pour renvoyer une chaîne avec foo avant la valeur de la propriété dans le get méthode. Et nous définissons la valeur de propriété que nous définissons dans le proxy sur 'bar'. En conséquence, nous voyons "foo hello" et "foo bar" à partir des deux journaux de la console, respectivement.
Vue 3 utilise des proxys pour observer les changements de valeurs réactives. Par conséquent, il peut surveiller les changements profondément imbriqués dans la valeur des propriétés sans que nous effectuions aucun travail supplémentaire.
pour définir le incrementDeeply fonction. Dans celui-ci, nous incrémentons simplement le nested.count directement la valeur de la propriété.
Cela fonctionne car Vue utilise des proxys JavaScript pour surveiller les modifications profondément imbriquées. Il peut donc récupérer le changement en nested.count immédiatement avec le proxy et restituez le composant en regardant le proxy set les changements de méthode.
Dans le data méthode, nous définissons la nestCount propriété réactive. À l’intérieur, nous ajoutons le nested.count propriété et définissez-la initialement sur 0.
Ensuite, nous définissons le incrementDeeply méthode et this.nestCount.nested.count augmente de 1 lorsque nous l’appelons. Et nous ajoutons un écouteur d’événement de clic au bouton et appelons incrementDeeply quand on clique dessus.
En raison de l’utilisation de proxys par Vue 3 pour surveiller les changements, nous pouvons simplement définir la valeur de la propriété profondément imbriquée et le composant sera alors restitué.
Par conséquent, pour nous assurer qu’un composant Vue est restitué lorsque nous le souhaitons, nous devons mettre à jour les valeurs des variables réactives.
Conclusion
Nous pouvons obtenir un nouveau rendu des composants Vue quand nous le souhaitons en mettant à jour les valeurs des variables réactives.
Vue 3 devrait être capable de surveiller les valeurs réactives qui sont des objets profondément imbriqués en raison de son utilisation de proxys JavaScript pour surveiller les changements de valeurs réactives.
janvier 25, 2024
Comment forcer le rendu d’un composant Vue
Faire en sorte que les composants Vue soient restitués via des valeurs de variables réactives. Découvrez comment dans cet article.
Parfois, nous avons besoin d’un nouveau rendu de nos composants Vue ; cependant, Vue peut ne pas toujours restituer nos composants comme prévu ou quand nous le souhaitons.
Dans cet article, nous verrons comment forcer le rendu d’un composant Vue à l’aide de variables réactives.
La réactivité de Vue
Les composants Vue seront restitués si nous mettons à jour les valeurs dans les variables réactives.
Par exemple, nous écrivons :
pour définir le
count
variable réactive et définissez sa valeur initiale sur 0 en appelantref
.Ensuite, nous ajoutons un écouteur d’événement de clic au bouton pour incrémenter
count
la valeur. En conséquence, lorsque nous cliquons sur le bouton,count
est incrémenté de 1.Le
ref
La fonction est utilisée pour définir un état réactif dans l’API Vue Composition, qui déclenche le rendu du composant lorsque ce qu’il renvoie change de valeur.Pour faire la même chose avec l’API Vue Options, on déclare une valeur réactive en la mettant dans l’objet renvoyé par le
data
méthode.Par exemple, nous écrivons :
nous mettons
count
dans l’objet retourné par ledata
et définissons sa valeur initiale à 0. Et dans le bouton, on fait la même chose que précédemment pour incrémentercount
par 1 quand on clique dessus.Dans Vue 3, toutes les valeurs réactives sont enveloppées dans un objet proxy et Vue surveille les modifications dans les modifications du proxy pour détecter les modifications dans les valeurs réactives.
Les proxys JavaScript nous permettent d’intercepter et de redéfinir les opérations fondamentales pour l’objet à partir duquel nous créons un proxy.
Pour créer un proxy JavaScript, nous utilisons le
Proxy
constructeur. Par exemple, nous écrivons :pour créer le
target
objet à partir duquel nous créons un proxy. Ensuite, nous utilisons leProxy
constructeur pour créer un objet proxy pourtarget
.Le
handler
l’objet a leget
etset
méthodes, qui interceptent l’opération permettant d’obtenir les valeurs des propriétés et de les définir, respectivement.Dans le
get
méthode, nous renvoyons letarget[prop]
qui est la valeur deprop
propriété dans l’objet.prop
a la chaîne de nom de propriété, ettarget
est letarget
objet à partir duquel nous avons créé le proxy.Dans
set
nous appelonsReflect.set
pour régler leobj
valeursprop
propriété à lavalue
valeur.obj
est l’objet à partir duquel nous avons créé le proxy, etprop
est la chaîne avec le nom de la propriété.value
est la valeur à laquelle nous définissons la propriété de l’objet.À partir des journaux de la console, nous pouvons voir
get
est appelé lorsque nous essayons d’obtenir une valeur de propriété à partir duproxy
objet. Et lorsque nous définissons la propriété dans un objet proxy, leset
la méthode est appelée.Nous pouvons changer ce qui est renvoyé par
get
etset
pour modifier les opérations d’obtention et de définition des valeurs des propriétés d’objet.Par exemple, nous écrivons :
pour renvoyer une chaîne avec
foo
avant la valeur de la propriété dans leget
méthode. Et nous définissons la valeur de propriété que nous définissons dans le proxy sur'bar'
. En conséquence, nous voyons"foo hello"
et"foo bar"
à partir des deux journaux de la console, respectivement.Vue 3 utilise des proxys pour observer les changements de valeurs réactives. Par conséquent, il peut surveiller les changements profondément imbriqués dans la valeur des propriétés sans que nous effectuions aucun travail supplémentaire.
Par exemple, nous écrivons :
pour définir le
incrementDeeply
fonction. Dans celui-ci, nous incrémentons simplement lenested.count
directement la valeur de la propriété.Cela fonctionne car Vue utilise des proxys JavaScript pour surveiller les modifications profondément imbriquées. Il peut donc récupérer le changement en
nested.count
immédiatement avec le proxy et restituez le composant en regardant le proxyset
les changements de méthode.Avec l’API Options, nous écrivons :
Dans le
data
méthode, nous définissons lanestCount
propriété réactive. À l’intérieur, nous ajoutons lenested.count
propriété et définissez-la initialement sur 0.Ensuite, nous définissons le
incrementDeeply
méthode etthis.nestCount.nested.count
augmente de 1 lorsque nous l’appelons. Et nous ajoutons un écouteur d’événement de clic au bouton et appelonsincrementDeeply
quand on clique dessus.En raison de l’utilisation de proxys par Vue 3 pour surveiller les changements, nous pouvons simplement définir la valeur de la propriété profondément imbriquée et le composant sera alors restitué.
Par conséquent, pour nous assurer qu’un composant Vue est restitué lorsque nous le souhaitons, nous devons mettre à jour les valeurs des variables réactives.
Conclusion
Nous pouvons obtenir un nouveau rendu des composants Vue quand nous le souhaitons en mettant à jour les valeurs des variables réactives.
Vue 3 devrait être capable de surveiller les valeurs réactives qui sont des objets profondément imbriqués en raison de son utilisation de proxys JavaScript pour surveiller les changements de valeurs réactives.
Source link
Partager :
Articles similaires