Heim >Web-Frontend >js-Tutorial >riot.js lernt [1] Benutzerdefinierte Tags
Die leistungsstärkste Funktion von Riot.js sind benutzerdefinierte Tags. Nehmen wir zunächst einen Code, um den Effekt zu sehen:
[code]<!Doctype html> <html> <head> <meta charset="utf-8" /> <script type="text/javascript" src="riot.js"></script> <script type="text/javascript" src="compiler.js"></script> </head> <body> <!-- 调用自定义标签 --> <timer start="10"></timer> </body> <!-- 最前面一定要有空格或TAB,留意它的type --> <script type="riot/tag"> <timer> <h3>Times: { index }</h3> this.index = opts.start || 0; var self = this; tick(){ // 每个1秒,index自增 this.index++; // 调用this.update更新UI【最欣赏这个了,能自己控制】 this.update(); } var timer = setInterval(this.tick, 1000); </timer> </script> <!-- 调用riot,启动自定义标签timer --> <script type="text/javascript"> riot.mount("timer"); </script> </html>
Der Effekt ist wie folgt [Jede Sekunde wird der Wert von mal ist + 1]:
Lassen Sie uns über die Fallstricke sprechen, auf die Neulinge stoßen:
script type=“riot/tag“
Der Compiler durchläuft alle Elemente mit dem Skripttyp = „riot/tag“. Wenn das Skript über src verfügt, wird die externe Datei geladen. Wenn kein src vorhanden ist, wird der Inhalt im Skript kompiliert.
PS: Der im Skript geschriebene Inhalt muss mit einem Leerzeichen oder Tabulator beginnen. Wenn direkt darauf ein „
Dies hängt mit dem internen Parser zusammen [Es war beim ersten Mal ziemlich verwirrend...]
tick()
Das Objekt this dieser Funktion ist die aktuelle Anpassung Der Kontext des Etiketts, solange die Funktion wie xx(){} deklariert ist, wird der Kontext als Kontext des Etiketts angegeben
Auf die Tick-Funktion kann über this.tick zugegriffen werden
this.update
This.update(); muss aufgerufen werden, bevor der Inhalt der Benutzeroberfläche aktualisiert wird.
Sie haben vielleicht das Gefühl, dass es keine andere MV*-Motorautomatisierung gibt, aber die manuelle Steuerung der Rückkehr wird flexibler sein
wählt
Im Code gibt es etwas sehr Seltsames Variable opts:
[code]this.index = opts.start || 0;Tatsächlich ist ihr Wert this.opts, das vom benutzerdefinierten Tag übergebene Attribut.
[code]<timer start="10"></timer>Dann ist this.opts.start/opts.start gleich 10
unterstützen und die Referenzierung externer Tag-Definitionsdateien
[code]<script src="todo.tag" type="todo/tag"></script>
unterstützen
Der Inhalt und die Zusammenstellung von todo.tag können gemäß dem obigen Beispiel geschrieben werden.
Das Obige ist der Inhalt von riot.js lernen [1] Benutzerdefinierte Tags, mehr. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)