Inhaltsverzeichnis
方案 3:使用 undefined
虚值
使用对象语法重构
使用 && 设置类
空类属性是否错误?
但是...
总结
Heim Web-Frontend View.js Lassen Sie uns darüber sprechen, wie Sie leere Klassen vermeiden können, wenn Sie Klassen in Vue dynamisch binden!

Lassen Sie uns darüber sprechen, wie Sie leere Klassen vermeiden können, wenn Sie Klassen in Vue dynamisch binden!

Sep 21, 2022 pm 08:27 PM
vue vue.js vue3

Vue Wie vermeide ich leere Klassen in dynamisch gebundenen Klassen? Im folgenden Artikel erfahren Sie, wie Sie leere Klassen beim dynamischen Binden von Klassen in Vue vermeiden. Ich hoffe, er ist hilfreich für Sie!

Lassen Sie uns darüber sprechen, wie Sie leere Klassen vermeiden können, wenn Sie Klassen in Vue dynamisch binden!

【Verwandte Empfehlung: vuejs-Video-Tutorial

Die Übergabe einer leeren Zeichenfolge kann dazu führen, dass die Klasse in der DOM-Ausgabe leer ist. Im ternären Operator können wir „null“ zurückgeben, was sicherstellt, dass es keine leere Klasse im DOM gibt?

<!-- ❌ -->
<div :class="isBold ? &#39;bold&#39; : &#39;&#39;">
<!-- <div class> -->

<!-- ✅ -->
<div :class="isBold ? &#39;bold&#39; : null">
<!-- <div> --
Nach dem Login kopieren

Option 1: Leere Zeichenfolge ''

verwenden''

我们使用三元运算符根据isBoldtrue还是falsy来有条件地设置适当的类。 在下面示例中,如果isBold真值,类就被设置为bold。 如果是虚值的,它将返回一个空字符串''

html

<div :class="isBold ? &#39;bold&#39; : &#39;&#39;"></div>
Nach dem Login kopieren

js

data() {
  return {
    isBold: false
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

最终渲染的样子:

<div class></div>
<!-- ? 啊! 空的class -->
Nach dem Login kopieren

如果isBoldtrue,会被渲染为:

<div class="bold"></div>
Nach dem Login kopieren
Nach dem Login kopieren

方案 2:使用null

接着,来看看如果我们给类赋值为null会发生什么。

html

<div :class="isBold ? &#39;bold&#39; : null"></div>
Nach dem Login kopieren

js

data() {
  return {
    isBold: false
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

最终渲染的样子:

<div></div>
<!-- ✅ Nice, 没有空的 class -->
Nach dem Login kopieren

如果isBoldtrue,会被渲染为:

<div class="bold"></div>
Nach dem Login kopieren
Nach dem Login kopieren

方案 3:使用 undefined

顺便说一句,undefined也可以正常工作 ?

<div :class="isBold ? &#39;bold&#39; : undefined"></div>
Nach dem Login kopieren
<div></div>
<!-- ✅ Nice, no empty class -->
Nach dem Login kopieren

虚值

下面这些是 JS 中的虚值。 因此,如果isBold是这些值中的任何一个,它将返回三元运算符的假的情况。

false
undefined
null
NaN
0
"" or '' or `` (empty string)
Nach dem Login kopieren

使用对象语法重构

对于上面的事例,使用对象语法会更好一些:

<div :class="{ bold: isBold }"></div>
Nach dem Login kopieren

使用三元运算符的一个更好的场景是设置多个类。

<div :class="isActive ? &#39;underline bold&#39; : null"></div>
Nach dem Login kopieren

使用 && 设置类

我们看看另一个场景,看看它是否有效。

<div :class="isBold && &#39;bold&#39;"></div>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

&&不仅是逻辑运算符,它实际上可以产生一个值。 因此,如果isBold为真值,则返回bold。 但是,如果isBold是虚值,则返回isBold的值。

强调最后一点-它将返回isBold的值。 因此,取决于isBold的值是什么,我们原来具有空类的问题仍然存在。 让我们看一些例子。

示例 A:isBold等于false

<div :class="isBold && &#39;bold&#39;"></div>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

这仍然会渲染空类 ?

<div class></div>
Nach dem Login kopieren

示例B:isBold等于null

<div :class="isBold && &#39;bold&#39;"></div>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

由于isBoldnull,因此空类消失了 ?。

<div></div>
Nach dem Login kopieren

&&没错-实际上,它只是完成其工作。 只是我们需要一个特定的返回值。 在其他方面,我们不能渲染空类,我们必须传递nullundefined。 除了这两个的任何其他虚值都是不行的。 因为这很容易被遗漏,所以我更喜欢更明确的三元运算符,或者只是对象语法?。

空类属性是否错误?

我尝试使用W3C Markup Validation Service进行检查,两种语法确实都可以通过。

<!-- Pass -->
<div class>...</div>

<!-- Pass -->
<div>...</div>
Nach dem Login kopieren

深入到HTML标准: HTML Standard: Empty attribute syntax,它似乎不允许空属性。

但是...

但是这种有效性不适用于id。因为空id被认为是无效的。

<!-- Fail -->
<div id>...</div>

<!-- Fail -->
<div id="">...</div>

<!-- Pass -->
<div id="name">...</div>
Nach dem Login kopieren
❌ 错误:ID不能为空字符串。

总结

由于空类被认为是有效的,并且规范不反对它,因此所有这些都由你自己选择。 它是你的代码库,你可以决定如何处理它。 如果你想保持HTML输出的整洁,则可以将nullWir verwenden drei Der Metaoperator legt die entsprechende Klasse bedingt fest, basierend darauf, ob isBold true oder falsy ist. Wenn im folgenden Beispiel isBold den Wert true hat, wird die Klasse auf bold gesetzt. Wenn es sich um einen virtuellen Wert handelt, wird eine leere Zeichenfolge '' zurückgegeben.

htmlrrreeejsrrreeeDas endgültige Rendering sieht so aus:

rrreee🎜Wenn isBold trueist > wird wie folgt gerendert: 🎜rrreee🎜Option 2: Verwenden Sie null🎜Als nächstes wollen wir sehen, was passiert, wenn wir der Klasse null zuweisen. 🎜🎜html🎜rrreee🎜js🎜rrreee🎜Das endgültige Rendering sieht so aus: 🎜rrreee🎜Wenn isBold trueist > wird wie folgt gerendert: 🎜rrreee🎜Option 3: Undefiniert verwenden🎜Übrigens kann undefiniert auch normal funktionieren?🎜rrreeerrreee🎜Virtueller Wert🎜Die folgenden sind JS imaginärer Wert in . Wenn also isBold einer dieser Werte ist, wird der falsche Fall des ternären Operators zurückgegeben. 🎜rrreee🎜Refactoring mithilfe der Objektsyntax🎜Für das obige Beispiel wäre es besser, die Objektsyntax zu verwenden: 🎜rrreee🎜Ein besseres Szenario für die Verwendung des ternären Operators besteht darin, mehrere Klassen einzurichten. 🎜rrreee🎜Verwenden Sie die Einstellungsklasse &&🎜Schauen wir uns ein anderes Szenario an, um zu sehen, ob es funktioniert. 🎜rrreee🎜&& ist nicht nur ein logischer Operator, er erzeugt tatsächlich einen Wert. Wenn also isBold wahr ist, wird bold zurückgegeben. Wenn isBold jedoch imaginär ist, wird der Wert von isBold zurückgegeben. 🎜🎜Betonung des letzten Punkts: Es wird der Wert von isBold zurückgegeben. Abhängig vom Wert von isBold besteht also immer noch unser ursprüngliches Problem einer leeren Klasse. Schauen wir uns einige Beispiele an. 🎜🎜Beispiel A: isBold ist gleich falserrreee🎜Dadurch wird immer noch die leere Klasse gerendert?🎜rrreee🎜Beispiel B: isBold code> ist gleich <code>nullrrreee🎜Da isBold null ist, verschwindet die leere Klasse?. 🎜rrreee🎜&&Das stimmt – eigentlich macht es einfach seinen Job. Wir benötigen lediglich einen bestimmten Rückgabewert. Ansonsten können wir keine leeren Klassen rendern, wir müssen null oder undefiniert übergeben. Alle anderen falschen Werte als diese beiden funktionieren nicht. Da dies leicht zu übersehen ist, würde ich den expliziteren ternären Operator oder nur die Objektsyntax bevorzugen? 🎜🎜Ist das leere Klassenattribut falsch? 🎜Ich habe versucht, den W3C Markup Validation Service🎜 zur Überprüfung zu verwenden, und beide Syntaxen haben tatsächlich bestanden. 🎜rrreee🎜Eingehende Einblicke in den HTML-Standard: HTML-Standard: Syntax für leere Attribute🎜, es scheint keine leeren Attribute zuzulassen. 🎜🎜Aber...🎜Aber diese Gültigkeit gilt nicht für id. Weil eine leere id als ungültig gilt. 🎜rrreee
❌ Fehler: ID darf kein leerer String sein.
🎜Zusammenfassung🎜Da leere Klassen als gültig gelten und die Spezifikation keine Einwände dagegen erhebt, liegt die Entscheidung ganz bei Ihnen. Es ist Ihre Codebasis und Sie entscheiden, was Sie damit machen möchten. Wenn Sie Ihre HTML-Ausgabe sauber halten möchten, können Sie null an den ternären Vue-Operator übergeben. Wenn es dir egal ist, vergiss es. Hier gibt es keine richtige Antwort, es hängt alles von Ihren Vorlieben ab?🎜🎜 (Teilen von Lernvideos: 🎜Web-Front-End-Entwicklung🎜, 🎜Einfaches Programmiervideo🎜)🎜

Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie Sie leere Klassen vermeiden können, wenn Sie Klassen in Vue dynamisch binden!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verweisen Sie auf die JS -Datei mit Vue.js So verweisen Sie auf die JS -Datei mit Vue.js Apr 07, 2025 pm 11:27 PM

Es gibt drei Möglichkeiten, sich auf JS -Dateien in Vue.js zu beziehen: Geben Sie den Pfad direkt mit dem & lt; Skript & gt an. Etikett;; Dynamischer Import mit dem montierten () Lebenszyklushaken; und importieren über die Vuex State Management Library.

So verwenden Sie Watch in Vue So verwenden Sie Watch in Vue Apr 07, 2025 pm 11:36 PM

Mit der Watch -Option in Vue.js können Entwickler auf Änderungen in bestimmten Daten anhören. Wenn sich die Daten ändert, löst sich eine Rückruffunktion aus, um Aktualisierungsansichten oder andere Aufgaben auszuführen. Zu den Konfigurationsoptionen gehören unmittelbar, die festlegen, ob ein Rückruf sofort ausgeführt werden soll, und Deep, das feststellt, ob Änderungen an Objekten oder Arrays rekursiv anhören sollen.

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

Was bedeutet es für faule Ladungsvue? Was bedeutet es für faule Ladungsvue? Apr 07, 2025 pm 11:54 PM

In Vue.js können Komponenten oder Ressourcen bei Bedarf dynamisch geladen werden, wodurch die Ladezeit der Anfangsseite dynamisch geladen und die Leistung verbessert wird. Die spezifische Implementierungsmethode umfasst die Verwendung & lt; Keep-Alive & GT; und & lt; Komponente ist & gt; Komponenten. Es ist zu beachten, dass fauler Laden FOUC -Probleme (Splace Screen) verursachen kann und nur für Komponenten verwendet werden sollte, die eine faule Belastung erfordern, um unnötige Leistungsaufwand zu vermeiden.

So fügen Sie Funktionen zu Schaltflächen für Vue hinzu So fügen Sie Funktionen zu Schaltflächen für Vue hinzu Apr 08, 2025 am 08:51 AM

Sie können der VUE -Taste eine Funktion hinzufügen, indem Sie die Taste in der HTML -Vorlage an eine Methode binden. Definieren Sie die Methode und schreiben Sie die Funktionslogik in der VUE -Instanz.

Vue realisiert Festzelt-/Text -Scrolling -Effekt Vue realisiert Festzelt-/Text -Scrolling -Effekt Apr 07, 2025 pm 10:51 PM

Implementieren Sie Marquee/Text-Scrolling-Effekte in VUE unter Verwendung von CSS-Animationen oder Bibliotheken von Drittanbietern. In diesem Artikel wird die Verwendung von CSS -Animation vorgestellt: Bildlauftext erstellen und Text mit & lt; div & gt;. Definieren Sie CSS -Animationen und setzen Sie Überlauf: Versteckt, Breite und Animation. Definieren Sie Keyframes, setzen Sie Transformation: Translatex () am Anfang und am Ende der Animation. Passen Sie die Animationseigenschaften wie Dauer, Bildlaufgeschwindigkeit und Richtung an.

Vue.js vs. React: projektspezifische Überlegungen Vue.js vs. React: projektspezifische Überlegungen Apr 09, 2025 am 12:01 AM

Vue.js eignet sich für kleine und mittelgroße Projekte und schnelle Iterationen, während React für große und komplexe Anwendungen geeignet ist. 1) Vue.js ist einfach zu bedienen und für Situationen geeignet, in denen das Team nicht ausreicht oder die Projektskala klein ist. 2) React hat ein reichhaltigeres Ökosystem und eignet sich für Projekte mit hoher Leistung und komplexen funktionalen Bedürfnissen.

So fragen Sie die Version von Vue So fragen Sie die Version von Vue Apr 07, 2025 pm 11:24 PM

Sie können die Vue -Version mit Vue Devtools abfragen, um die Registerkarte VUE in der Konsole des Browsers anzuzeigen. Verwenden Sie NPM, um den Befehl "npm list -g vue" auszuführen. Suchen Sie das Vue -Element im Objekt "Abhängigkeiten" der Datei package.json. Führen Sie für Vue -CLI -Projekte den Befehl "Vue --version" aus. Überprüfen Sie die Versionsinformationen im & lt; Skript & gt; Tag in der HTML -Datei, die sich auf die VUE -Datei bezieht.

See all articles