Lernen und verstehen Sie gemeinsam den Vue-Quellcode
Laut der offiziellen Website von Vue können wir wissen, dass Vue ein MVVM-Framework ist und reagiert. Um die Bedeutung besser zu verstehen, habe ich eine einfache MVVM-Lerndemo implementiert. Teilen Sie es unten mit allen und laden Sie alle ein, darüber zu diskutieren.
1. Der in mvvm enthaltene Mindestinhalt
Befehlssatz, wie zum Beispiel: Text, Modell usw.
Datenmodell und Interaktionsdaten anzeigen
Komponentenunterstützung: Das heißt, dynamische Aktualisierung eines Teils des HTML-Codes
2. Meine Implementierung
1. Definition von Variablen und Implementierung der Uhr
var directives = {}; //指令集合var vNodes = new Array(); //解析的Dom集合var dataModel = { name:"name", title: "title"}; //数据Modelvar Watch = { isInit: false, watchs: new Array(), run: function(newValue, expOrfn){ var self = this;if(!self.isInit){ expOrfn.call(vModel); }this.watchs.map(function(data,index){ data.nodes.map(function(d,i){if(self.isInit){ d.directive.init(newValue, d, data); //绑定初始化值, 以及初始化一些事件}else{ d.directive.update(newValue, d, data); //只更新值,此时run的调用来值value-set } }); }); self.watchs = []; }, push:function(watch){this.watchs.push(watch); } } //任务管理
Erklärung:
Watch Die Push-Methode wird zum Hinzufügen von Abhängigkeiten verwendet und anschließend ausgeführt, um alle Abhängigkeiten auszuführen. Nach Abschluss der Ausführung muss die aktuelle Abhängigkeitssammlung bereinigt werden. Die Sammlung von Abhängigkeiten in Vue wird in Dep abgeschlossen und die Aufgabenverwaltung wird von Watch bereitgestellt (Ich weiß nicht, ob ich es richtig verstehe)
2. Definition der Anweisungen
directives.text = { init: function(value, vNode){ vNode.elm.textContent = value; }, update: function(value, vNode){ vNode.elm.textContent = value; } }//需要响应事件的怎么办directives.model ={ init: function(value, vNode, _watch){ vNode.elm.value = value; //判断自己发生的改变,不应该再改变自己 vNode.elm.addEventListener('keyup',function(evt){ vNode.model[_watch.key] = vNode.elm.value; }); }, update:function(){ } }
Beschreibung:
Da es sich um ein Demo-Lernbeispiel handelt, nur einfacher Text und Modell sind definiert, Text: wird für die Datenanzeige verwendet und Modell wird für die Eingabe (Eingabefeld)-Antwort verwendet
3 🎜 >
Hinweis://转换vModel,暂支持一级var properties = Object.getOwnPropertyNames(dataModel);var vModel = {}, formSetting = false;for( var index in properties){ (function refreshData(_index){var key = properties[_index];var property = Object.getOwnPropertyDescriptor(dataModel, key);var setter = property.set;var getter = property.get;var _val = property.value;var _getter = function(){var val = getter ? getter.call(vModel) : _val;//收集依赖,与watch要分开 Watch.push({ key: key, nodes: vNodes.filter(function(data,index){return data.modelKey == key ? true : false; }), getter: _getter });return val; }; Object.defineProperty(vModel, key, { configurable: true, enumerable: true, set: function(value){if(setter){ setter.call(vModel, value); } //处理依赖 Watch.run(value, _getter);//this.value = value; }, get: _getter }) })(index); }
vModel wird basierend auf dataModel generiert, dh die Get- und Set-Methoden jedes Attributs werden angepasst, was auch mithilfe eines Proxys in es6 implementiert werden kann (
- Hast du recht?
). Beim Festlegen eines Attributs wird zuerst die get-Methode aufgerufen, um Abhängigkeiten zu sammeln. Nachdem der Komfortwert geändert wurde, können alle betroffenen Inhalte geändert werden.
4. Dom als vNode analysieren
//解析vNodesvar app = document.getElementById('app'); app.childNodes.forEach(function(data,index){if(data.nodeType != 1) return;var hv = data.getAttribute('data-hv');var hvs = hv.split(','); hvs.forEach(function(item,row){var keyValue = item.split(':'); //vNode对象上一定要有model,这是方便vNode相应时候的找vModel vNodes.push({ directive: directives[keyValue[0]], modelKey: keyValue[1], model: vModel, elm: data }); }); });
Hier reden wir Informationen zum Parsen Für vNode ist es sehr weit hergeholt, da es nur die von data-hv auf dem Dom angegebenen Anweisungen sammelt und die entsprechenden Anweisungen, Elemente, vModel usw. in einem Objekt in vNodes für die get-Methode jedes Attributs speichert von vModel zum Sammeln von Abhängigkeiten.
5. Erste Initialisierung
//调用所有的get一次Watch.isInit = true;var _keys = Object.getOwnPropertyNames(vModel); _keys.map(function(key,data){var data = vModel[key]; Watch.run(data); }); Watch.isInit = false;
Der Wert wird initialisiert von vModel wird an den Dom gerendert. Hier wird jeder Get aktiv ausgeführt und dann die watch.run-Methode ausgeführt.
Ich habe das Gefühl, dass das Design und die Implementierung hier nicht mit den Vorstellungen von vue übereinstimmen. Wenn jemand dies sieht, geben Sie mir bitte einige Ratschläge und Anleitungen.
6. Geparster Dom
Das obige ist der detaillierte Inhalt vonLernen und verstehen Sie gemeinsam den Vue-Quellcode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Als Programmiersprache auf hohem Niveau ist Python leicht zu erlernen, leicht zu lesen und zu schreiben und wird häufig in der Softwareentwicklung eingesetzt. Aufgrund des Open-Source-Charakters von Python ist der Quellcode jedoch für andere leicht zugänglich, was einige Herausforderungen für den Schutz des Software-Quellcodes mit sich bringt. Daher müssen wir in praktischen Anwendungen häufig einige Methoden anwenden, um den Python-Quellcode zu schützen und seine Sicherheit zu gewährleisten. Beim Schutz des Software-Quellcodes stehen für Python verschiedene Anwendungspraktiken zur Auswahl. Nachfolgend sind einige häufige aufgeführt

Wie kann der Quellcode von PHP-Code im Browser angezeigt werden, ohne dass er interpretiert und ausgeführt wird? PHP ist eine serverseitige Skriptsprache, die häufig zur Entwicklung dynamischer Webseiten verwendet wird. Wenn eine PHP-Datei auf dem Server angefordert wird, interpretiert und führt der Server den darin enthaltenen PHP-Code aus und sendet den endgültigen HTML-Inhalt zur Anzeige an den Browser. Manchmal möchten wir jedoch den Quellcode der PHP-Datei direkt im Browser anzeigen, anstatt ihn auszuführen. In diesem Artikel wird erläutert, wie der Quellcode von PHP-Code im Browser angezeigt wird, ohne dass er interpretiert und ausgeführt wird. In PHP können Sie verwenden

Sie können die Entwicklertools des Browsers verwenden, um den Quellcode der Website anzuzeigen. Im Google Chrome-Browser: 1. Öffnen Sie den Chrome-Browser und besuchen Sie die Website, auf der Sie den Quellcode anzeigen möchten Seite und wählen Sie „Inspizieren“ oder drücken Sie die Tastenkombination Strg + Umschalt + I, um die Entwicklertools zu öffnen. 3. Wählen Sie in der oberen Menüleiste der Entwicklertools die Registerkarte „Elemente“ aus. 4. Sehen Sie sich einfach den HTML- und CSS-Code an der Website.

Durch das Verständnis des Quellcodes des Golang-Frameworks können Entwickler die Essenz der Sprache beherrschen und die Funktionen des Frameworks erweitern. Besorgen Sie sich zunächst den Quellcode und machen Sie sich mit seiner Verzeichnisstruktur vertraut. Zweitens lesen Sie den Code, verfolgen Sie den Ausführungsfluss und verstehen Sie die Abhängigkeiten. Praxisbeispiele zeigen, wie Sie dieses Wissen anwenden: Erstellen Sie benutzerdefinierte Middleware und erweitern Sie das Routing-System. Zu den Best Practices gehören das schrittweise Lernen, das Vermeiden von sinnlosem Kopieren und Einfügen, die Verwendung von Tools und der Verweis auf Online-Ressourcen.

Vue kann den Quellcode in Vue anzeigen: 1. Holen Sie sich Vue über „git clone https://github.com/vuejs/vue.git“ 2. Installieren Sie Abhängigkeiten über „npm i“; 3. Über „npm i -g rollup“ 4. Ändern Sie das Entwicklungsskript. 5. Debuggen Sie den Quellcode.

Schritte zum Anzeigen des Tomcat-Quellcodes in IDEA: 2. Tomcat-Quellcode in IDEA importieren; 4. Das Funktionsprinzip von Tomcat verstehen; Aktualisieren 7. Verwenden Sie Tools und Plug-Ins. 8. Nehmen Sie an der Community teil und leisten Sie einen Beitrag. Detaillierte Einführung: 1. Laden Sie den Tomcat-Quellcode herunter. Sie können das Quellcodepaket von der offiziellen Website von Apache Tomcat herunterladen. Normalerweise liegen diese Quellcodepakete im ZIP- oder TAR-Format vor.

In diesem Artikel wird die Quellcode-Analyse und -Optimierung des Go-Frameworks untersucht. Die Quellcodestruktur umfasst vier Hauptpakete, die die Kern-Framework-Logik, den Anforderungskontext, die Datenbindung und das Antwort-Rendering umfassen. Zu den Optimierungstechniken gehören: 1. Verwenden Sie Routing-Bäume, um die Routenverarbeitung zu optimieren und die Geschwindigkeit der Routensuche deutlich zu erhöhen. 2. Verwenden Sie Middleware für Caching und Komprimierung, um die Serverlast und Antwortzeit zu reduzieren. 3. Vermeiden Sie zeitaufwändige Vorgänge bei Rückrufen, um eine hohe Reaktionsfähigkeit aufrechtzuerhalten. 4. Aktivieren Sie die Protokollierung und analysieren Sie langsame Anfragen, um Leistungsengpässe zu identifizieren. 5. Aktualisieren Sie die Framework-Versionen regelmäßig, um von den neuesten Leistungsverbesserungen zu profitieren.

PHP-Quellcodefehler: Um das Indexfehlerproblem zu lösen, sind spezifische Codebeispiele erforderlich. Aufgrund der rasanten Entwicklung des Internets stoßen Entwickler beim Schreiben von Websites und Anwendungen häufig auf verschiedene Probleme. Unter diesen ist PHP eine beliebte serverseitige Skriptsprache, und ihre Quellcodefehler sind eines der Probleme, auf die Entwickler häufig stoßen. Wenn wir versuchen, die Indexseite einer Website zu öffnen, werden manchmal verschiedene Fehlermeldungen angezeigt, z. B. „InternalServerError“, „Unde
