Heim > Web-Frontend > js-Tutorial > Hauptteil

riot.js lernt [4] Ausdruck + boolesches Attribut

黄舟
Freigeben: 2017-01-16 16:08:42
Original
1289 Leute haben es durchsucht

Ausdruck

In riot.js können HTML-Tags leistungsfähigere Ausdrücke zum Festlegen von Werten verwenden.
Ausdrücke können in innerText und Attributen verwendet werden und entsprechen zu 100 % der ursprünglichen JavaScript-Syntax.

Geben Sie mir einige kleine Beispiele:

<h3 id={ /* 属性表达式 */ }>
    { /*这里可以写表达式*/ }</h3>
Nach dem Login kopieren

Die Verwendungsmethoden sind auch recht umfangreich:

{ title || &#39;da宗熊&#39; }
{ isReady ? &#39;ready&#39; : &#39;loading&#39; }
{ new Date() }
{ this.getName() }
{ Math.round(10) }
{ message.length > 100 && &#39;消息太长了~&#39; }
Nach dem Login kopieren

Ausdrücke von riot.js können Ihr HTML so gut wie möglich gestalten möglich Ordentlich und effizient.

Wenn Ihr Ausdruck zu komplex ist, können Sie natürlich erwägen, die Berechnung im Aktualisierungsereignis zu platzieren oder eine separate Berechnungsmethode zu verwenden.

 <todo>
        <!-- value的计算很复杂 -->
        <p>{ value }</p>
        <p>{ this.getText(this.text) }</p>

        // 计算复杂的表达式
        this.on("update", function(){
            var d = new Date();
            this.value = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
        });
        this.text = "da宗熊";

        // getText方法,会依赖于this对象下
        getText(text){
            return "你好" + text;
        }    </todo>
Nach dem Login kopieren

Die Ausgabe lautet wie folgt:

riot.js lernt [4] Ausdruck + boolesches Attribut

Boolesche Attribute

Attribute wie „geprüft“, „ausgewählt“ usw. werden in verwendet roit.js Wird als boolesche Eigenschaft bezeichnet.

Wenn der Ausdruckswert des booleschen Attributs falsch ist, wird das Attribut ignoriert:

<!-- 普通属性 -->
<input name={ false } >
<!-- Boolean属性 -->
<input checked={ null } >
Nach dem Login kopieren

wird generiert:

<input name="false" ><input >
Nach dem Login kopieren

Wie im W3C angegeben Spezifikation: Solange das boolesche Attribut existiert, muss es wahr sein, auch wenn sein Wert sogar falsch ist, ist es immer noch wahr.
Um es einfach auszudrücken: Auch wenn wir „checked=false“ setzen, wird der vom Browser angezeigte Endeffekt immer noch überprüft.

Vor diesem Hintergrund hat roit.js das boolesche Attribut beim Generieren optimiert. Wenn es sich um ein boolesches Attribut handelt und sein Ausdruck die Bedingungen erfüllt:

{ value == false }
Nach dem Login kopieren

wird Diese boolesche Eigenschaft ist nicht generiert.

Neulinge stoßen auf Fallstricke

Eigenschaftseinstellungen

<input value={ name } { isCheck ? &#39;checked&#39; : &#39;&#39; } />
Nach dem Login kopieren

Solche Einstellungen sind verboten und der generierte Code sieht folgendermaßen aus:

<input {="" true="" ?="" &#39;checked&#39;="" :="" &#39;&#39;="" }="">
Nach dem Login kopieren

Es Das heißt, ich verstehe es überhaupt nicht. Stimmt etwas nicht?

Doppelte Anführungszeichen

<input name={ "da宗熊" } >
Nach dem Login kopieren

Sieht normal aus, stimmt etwas nicht?

Aber der Ergebniscode lautet:

<input da宗熊"="" }"="" name="{ ">
Nach dem Login kopieren

Wieder einmal hat riot.js einen Groll gegen doppelte Anführungszeichen! ! ! ! [In den meisten Fällen]


Das Obige ist der Inhalt des riot.js-Lernens [4] Ausdruck + Boolean-Attribut Für weitere verwandte Inhalte achten Sie bitte auf PHP-Chinesisch Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!