Réécrivez le titre en : élément réactif VueJS avec un élément défini sur true et tous les autres définis sur false
P粉786800174
2023-08-28 20:55:03
<p>Je développe une application utilisant l'API de composition de VueJS.
J'ai configuré un élément réactif comme indiqué ci-dessous</p>
<pre class="brush:php;toolbar:false;">const sections = réactif({
section1 : vrai,
section2 : faux,
section3 : faux,
section4 : faux,
section5 : faux,
section6 : faux
})</pré>
<p>Lorsque l'on clique sur chaque bouton de la page, je souhaite afficher et masquer les éléments individuels (parmi de nombreuses autres opérations) en fonction de leurs valeurs booléennes.
Je pourrais écrire une fonction pour chaque bouton qui configure tout individuellement comme vous le voyez dans ce code</p>
<pre class="brush:php;toolbar:false;">const section1Button= () =>
sections.section1 = vrai,
sections.section2 = faux,
sections.section3 = faux,
sections.section4 = faux,
sections.section5 = faux,
sections.section6 = faux
}
const section2Button= () =>
sections.section1 = faux,
sections.section2 = vrai,
sections.section3 = faux,
sections.section4 = faux,
sections.section5 = faux,
sections.section6 = faux
}</pré>
<p>Cela fonctionne certainement, mais cela signifie que je dois écrire plusieurs fonctions avec un seul changement.
Existe-t-il un moyen plus efficace d’accomplir cette tâche ?
J'ai l'impression que je devrais pouvoir le faire avec une boucle ou une instruction if, mais je n'y pense tout simplement pas.
Ceci est mon premier article sur stackoverflow, merci de me faire savoir si je n'ai pas fourni suffisamment de détails. </p>
Vous pouvez essayer d'utiliser
Array.prototype.reduce
和Object.entries
来循环遍历sections
的键/值对,并根据需要设置true
/false
,从而创建一个新的sections
object comme ceci :Si vous constatez que vous devez modifier directement les propriétés, vous pouvez utiliser
Array.prototype.forEach
:J'espère que cela aide !