Heim Web-Frontend js-Tutorial So vermeiden Sie Dom-Missverständnisse im fortgeschrittenen Angular2

So vermeiden Sie Dom-Missverständnisse im fortgeschrittenen Angular2

Apr 03, 2018 am 09:33 AM
Missverständnis 避免

Dieser Artikel stellt hauptsächlich vor, wie man Dom-Missverständnisse in fortgeschrittenem Angular2 vermeidet. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf.

Vorwort

Das Designziel von Angular2 besteht darin, den Browser und das DOM unabhängig zu machen . Das DOM ist komplex, daher erleichtert die Entkopplung von Komponenten das Testen und Refactoring unserer Anwendungen. Um plattformübergreifend zu unterstützen, kapselt Angular auch die Unterschiede verschiedener Plattformen durch Abstraktion.

Inhalt

1. Warum kann das DOM nicht direkt manipuliert werden?

Angular2 verwendet den statischen Kompilierungsmodus AOT. In dieser Form muss unser Vorlagentyp stabil und sicher sein. Die direkte Verwendung von Javascript und JQuery-Sprachen ist instabil, da ihre Kompilierung nicht stabil ist . Fehler werden im Voraus entdeckt, daher wählt angle2 die Typoskript-Sprache, eine Obermenge von Javascript (Fehler können während der Kompilierung dieser Sprache gefunden werden).

3 Möglichkeiten, DOM falsch zu bedienen:

@Component({ ... })
export class HeroComponent {
 constructor(private _elementRef: ElementRef) {}

 doBadThings() {
  $('id').click(); //jquery
  this._elementRef.nativeElement.xyz = ''; //原生的ElementRef
  document.getElementById('id'); //javascript
 }
}
Nach dem Login kopieren

3.Wie nutzt Angular2 den DOM-Manipulationsmechanismus?

Um plattformübergreifend zu unterstützen, kapselt Angular die Unterschiede verschiedener Plattformen durch Abstraktionsschichten. Beispielsweise sind die abstrakten Klassen Renderer, Renderer2, die abstrakte Klasse RootRenderer usw. definiert. Darüber hinaus sind folgende Referenztypen definiert: ElementRef, TemplateRef, ViewRef, ComponentRef, ViewContainerRef usw.

4. Richtige Art und Weise, DOM (ElementRef und Renderer2) zu bedienen:

product.component.html

<p>商品信息</p>
<ul>
 <li *ngFor="let product of dataSource| async as list">
  {{product.title}}
 </li>
</ul>
<p #dia>
</p>
Nach dem Login kopieren

product.component.ts

import { Component, OnInit,Renderer2, ViewChild,ElementRef,AfterViewInit} from &#39;@angular/core&#39;;
@Component({
 selector: &#39;app-product&#39;,
 templateUrl: &#39;./product.component.html&#39;,
 styleUrls: [&#39;./product.component.css&#39;]
})

export class ProductComponent implements OnInit,AfterViewInit {
 @ViewChild(&#39;dia&#39;) dia:ElementRef ;定义子试图
 ngOnInit() {
 /**1.
 *创建一个文本
 */
  this.dia.nativeElement.innerHTML="这只是一个测试的文档";

 /**2.
  *添加click事件
  */
 let ul=this.element.nativeElement.querySelector(&#39;ul&#39;);
  this.render2.listen(ul,"click",()=>{
   this.render2.setStyle(ul,"background","blue");

ngAfterViewInit(){
/**3.
 *修改背景颜色
 */
 let li=this.element.nativeElement.querySelector(&#39;ul&#39;);
 this.render2.setStyle(li,"background","red");
 }
}
Nach dem Login kopieren

Zusammenfassung

Tatsächlich sollten wir beim Erlernen einer Sprache zunächst deren Spezifikationen befolgen, die Unterschiede zwischen ihr und der vorherigen Sprache akzeptieren und dann tiefgreifend verstehen, was sich von der vorherigen Methode unterscheidet und warum wir dies tun, sonst werden wir es nicht schaffen Um die Schönheit der Sprache zu verstehen, hoffe ich, dass es Ihnen hilft!




Das obige ist der detaillierte Inhalt vonSo vermeiden Sie Dom-Missverständnisse im fortgeschrittenen Angular2. 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 尊渡假赌尊渡假赌尊渡假赌

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)

Java-Fehler: Codierungs- und Decodierungsfehler, wie man sie löst und vermeidet Java-Fehler: Codierungs- und Decodierungsfehler, wie man sie löst und vermeidet Jun 24, 2023 pm 05:27 PM

Java ist eine sehr beliebte Programmiersprache und viele Projekte sind in Java geschrieben. Wenn wir jedoch während des Entwicklungsprozesses auf „Kodierungs- und Dekodierungsfehler“ stoßen, fühlen wir uns möglicherweise verwirrt und verwirrt. In diesem Artikel stellen wir die Ursachen von Java-Kodierungs- und -Dekodierungsfehlern vor und zeigen, wie diese Fehler behoben und vermieden werden können. Was ist ein Codec-Fehler? Während der Java-Entwicklung müssen wir häufig Texte und Dateien verarbeiten. Es können jedoch unterschiedliche Texte und Dateien entstehen

Java-Fehler: JavaFX-Ansichtsfehler, wie man damit umgeht und ihn vermeidet Java-Fehler: JavaFX-Ansichtsfehler, wie man damit umgeht und ihn vermeidet Jun 25, 2023 am 08:47 AM

JavaFX ist ein Benutzeroberflächen-Framework für die Java-Plattform, ähnlich wie Swing, jedoch moderner und flexibler. Bei der Verwendung können jedoch einige Anzeigefehler auftreten. In diesem Artikel erfahren Sie, wie Sie mit diesen Fehlern umgehen und sie vermeiden können. 1. Arten von JavaFX-Ansichtsfehlern Bei der Verwendung von JavaFX können die folgenden Ansichtsfehler auftreten: NullPointerException Dies ist einer der häufigsten Fehler und tritt normalerweise auf, wenn versucht wird, auf ein nicht initialisiertes oder nicht vorhandenes Objekt zuzugreifen. das ist möglich

Java-Fehler: JDBC-Fehler, wie man sie löst und vermeidet Java-Fehler: JDBC-Fehler, wie man sie löst und vermeidet Jun 24, 2023 pm 02:40 PM

Durch die weit verbreitete Anwendung von Java treten häufig JDBC-Fehler auf, wenn Java-Programme eine Verbindung zu Datenbanken herstellen. JDBC (JavaDatabaseConnectivity) ist eine Programmierschnittstelle in Java, die zum Herstellen einer Verbindung zu einer Datenbank verwendet wird. Daher ist ein JDBC-Fehler ein Fehler, der auftritt, wenn ein Java-Programm mit einer Datenbank interagiert. Hier sind einige der häufigsten JDBC-Fehler und wie man sie löst und vermeidet. ClassNotFoundException Dies ist die häufigste JDBC-Ausnahme

Häufige Missverständnisse und Lösungen zu Benennungsregeln für Python-Variablen Häufige Missverständnisse und Lösungen zu Benennungsregeln für Python-Variablen Jan 20, 2024 am 09:10 AM

Häufige Missverständnisse und Lösungen für Python-Variablenbenennungsregeln Bei der Python-Programmierung ist die korrekte Variablenbenennung sehr wichtig. Eine gute Namenskonvention kann die Lesbarkeit und Wartbarkeit des Codes verbessern und einige potenzielle Fehler vermeiden. Neulinge machen jedoch häufig einige häufige Missverständnisse bei der Benennung von Variablen. In diesem Artikel werden einige häufige Missverständnisse erläutert und Lösungen sowie spezifische Codebeispiele bereitgestellt. Missverständnis 1: Verwenden Sie reservierte Schlüsselwörter als Variablennamen. Diese Schlüsselwörter sind in der Python-Syntax enthalten.

Methoden zur Vermeidung von Endlosschleifen bei der PHP-Sprachentwicklung Methoden zur Vermeidung von Endlosschleifen bei der PHP-Sprachentwicklung Jun 10, 2023 pm 02:36 PM

Bei der PHP-Sprachentwicklung stoßen wir oft auf Endlosschleifen, die bestimmte Codes unbegrenzt ausführen, was zum Absturz des Programms oder sogar zum Absturz des Servers führt. In diesem Artikel werden einige Methoden vorgestellt, um zu verhindern, dass sie in Endlosschleifen geraten, und um Entwicklern zu helfen, dieses Problem besser zu lösen. 1. Vermeiden Sie unendliche rekursive Aufrufe in einer Schleife. Wenn eine Funktion oder Methode in einer Schleife aufgerufen wird und die Funktion oder Methode eine Schleifenanweisung enthält, wird ein unendlicher rekursiver Aufruf erstellt, der zum Absturz des Programms führt. Um dies zu vermeiden, können Sie eine hinzufügen

Golang-Entwicklungshinweise: So vermeiden Sie Speicherverlustprobleme Golang-Entwicklungshinweise: So vermeiden Sie Speicherverlustprobleme Nov 23, 2023 am 09:38 AM

Golang ist eine schnelle und effiziente Entwicklungssprache, die aufgrund ihrer leistungsstarken Parallelitätsfähigkeiten und des integrierten Garbage-Collection-Mechanismus weithin beliebt ist. Allerdings kann es auch bei der Entwicklung mit Golang immer noch zu Speicherlecks kommen. In diesem Artikel werden einige allgemeine Überlegungen zur Golang-Entwicklung vorgestellt, um Entwicklern dabei zu helfen, Probleme mit Speicherverlusten zu vermeiden. Zirkelverweise vermeiden Zirkelverweise sind eines der häufigsten Speicherverlustprobleme in Golang. Wenn zwei Objekte aufeinander verweisen und die Verweise auf diese Objekte nicht rechtzeitig freigegeben werden,

Java-Fehler: JavaFX-Knotenfehler, wie man damit umgeht und ihn vermeidet Java-Fehler: JavaFX-Knotenfehler, wie man damit umgeht und ihn vermeidet Jun 24, 2023 pm 05:37 PM

JavaFX ist ein grafisches Schnittstellen-Toolkit für die Java-Plattform. Es bietet eine umfangreiche API zum Erstellen von Fenstern, Steuerelementen, Szenen usw. Bei der Verwendung von JavaFX können jedoch einige Knotenfehler auftreten, die dazu führen können, dass die Anwendung nicht ordnungsgemäß funktioniert. In diesem Artikel werden einige häufige JavaFX-Knotenfehler vorgestellt und erläutert, wie man mit ihnen umgeht und sie vermeidet. NullPointerExceptionNullPointerException ist der häufigste Fehler in JavaFX-Anwendungen

Wie vermeide ich Kompatibilitätsprobleme beim Upgrade von PHP5.6 auf PHP7.4? Wie vermeide ich Kompatibilitätsprobleme beim Upgrade von PHP5.6 auf PHP7.4? Sep 05, 2023 am 08:25 AM

Wie vermeide ich Kompatibilitätsprobleme beim Upgrade von PHP5.6 auf PHP7.4? Aufgrund der kontinuierlichen Weiterentwicklung der Technologie kommt es bei PHP als häufig verwendeter Programmiersprache häufig zu Kompatibilitätsproblemen zwischen verschiedenen Versionen. Wenn wir uns für ein Upgrade von einer älteren Version auf eine neuere Version entscheiden, kann es leicht zu unerwarteten Problemen kommen, insbesondere beim Upgrade von PHP5.6 auf PHP7.4. Um Ihnen dabei zu helfen, Kompatibilitätsfallen zu vermeiden, werden in diesem Artikel einige häufige Fallstricke und ihre Lösungen vorgestellt. Syntaxfehler PH

See all articles