Schalten Sie den aktiven Status der Schaltfläche in der V-for-Schleife in Vue 3 um
P粉046878197
2023-08-27 09:44:54
<p>Ich erstelle in Vue 3 eine Filterkopfzeile, in der Sie eine Kategorie zum Anzeigen auswählen können. Sie können also auf einen Schalter klicken, um den Filter umzuschalten. Wenn Sie auf eine andere Kategorie klicken, werden die Kategorien der vorherigen Aktivität dort deaktiviert Es kann jeweils nur eine oder keine aktive Kategorie sein. </p>
<p>Ich habe einige Beispiele gefunden, wie diese jsfiddle, die keine Umschalttaste hat (erneut klicken, um die Auswahl aufzuheben) und keine V-for-Schleife verwendet. Ich bin mir ziemlich sicher, dass ich dies in eine V-for-Schleife umwandeln kann, aber ich weiß nicht, wie ich das einfach umstellen kann, wenn immer nur eine Kategorie gleichzeitig aktiv ist. </p>
<p>Das ist mein Basiscode: </p>
<pre class="brush:html;toolbar:false;"><button
v-for="Kategorie in contentCategories"
@click=""
class="filter-button"
>
{{ Kategorie }}
</button>
</pre>
<pre class="brush:js;toolbar:false;">const contentCategories = ["Kategorie 1", "Kategorie 2", "Kategorie 3"];
let list = contentStore.resources;
const activeCategory = "";
const filteredList = Liste
.filter((e) => e.category === activeCategory)
.map((e) => {
Rückkehr e;
});
</pre>
<p>Das Verhalten, das ich brauche, besteht meiner Meinung nach darin, die aktive Kategorie in einer <code>activeCategory</code>-Zeichenfolge zu speichern und die aktive Beschriftung auf die entsprechende Schaltfläche anzuwenden und sie dann entfernen zu können, wenn auf die aktive Schaltfläche geklickt wird erneut Die <code>activeCategory</code> oder ändert die <code>activeCategory</code>, wenn auf eine andere Schaltfläche geklickt wird. </p>
<p>Es tut mir leid, wenn dies eine einfache Lösung ist, da ich noch sehr neu bei Vue bin. Danke! </p>
使用组合 API
使用额外的引用进行跟踪的简单解决方案
如果您想要实现多个选择能力,则跟踪类别活动