Heim > Web-Frontend > js-Tutorial > Hauptteil

JavaScript-Proxyobjekt-Proxy-Ersterfahrung mit einfacher datengesteuerter Ansicht

WBOY
Freigeben: 2022-08-24 17:18:57
nach vorne
1441 Leute haben es durchsucht

Dieser Artikel vermittelt Ihnen relevantes Wissen über Javascript. Er führt Sie zum ersten Mal in die einfache datengesteuerte Ansicht des JS-Proxy-Objekts ein. Ich hoffe, es hilft allen.

JavaScript-Proxyobjekt-Proxy-Ersterfahrung mit einfacher datengesteuerter Ansicht

[Verwandte Empfehlungen: Javascript-Video-Tutorial, Web-Frontend]

JQuery ist ein ereignisgesteuerter Typ, das heißt, wenn ein Datenelement mit einem bestimmten Inhalt verknüpft ist DOM, I Nachdem sich diese Daten geändert haben, müssen Sie das DOM für die Synchronisierung bedienen:

<div id="data">数据</div>
Nach dem Login kopieren
var data = "数据"
// 通过某种事件数据发生了变化
data = "新数据"
$("#data").text = data
Nach dem Login kopieren

Bei einfachen Interaktionen scheint diese Methode praktisch zu sein, aber sobald die Interaktion groß wird, wird der Code aufgebläht.

Als Angular, Vue und React kurz vor dem Abschluss standen, entdeckten wir einen neuen Weg – datengesteuert. Das heißt, durch die „Bindung“ von DOM und Daten können wir Daten und DOM-Inhalte sofort ändern geschah.

<div>{{data}}</div>
Nach dem Login kopieren
var data = "数据"
// ...某种方式进行了绑定
data = "新数据"
Nach dem Login kopieren

Der Inhalt im DOM wird direkt zu neuen Daten. Es ist sehr bequem zu verwenden und der Code ist relativ prägnant. Damals schien es magisch.

Verschiedene datengesteuerte Frameworks haben unterschiedliche Bindungsprinzipien und -prozesse und sind alle relativ komplex. Aber heute werden wir es vereinfachen und das Proxy-Objekt von JS verwenden, um das Datenlaufwerk zu implementieren. (Übrigens verwenden die responsiven Daten von Vue3 dieses Prinzip. Natürlich wird es viel komplizierter sein als das heutige Beispiel.)

Was ist das Proxy-Objekt?

Proxy Das Objekt wird verwendet, um einen Proxy für ein Objekt zu erstellen Erzielen Sie ein grundlegendes Abfangen und Anpassen von Vorgängen (z. B. Attributsuche, Zuweisung, Aufzählung, Funktionsaufruf usw.). Die spezifische Verwendungsmethode lautet:

new Proxy(要代理的对象,代理的事件对象)
Nach dem Login kopieren

Die Ereignisse, die als Proxy verwendet werden können, sind wie folgt:

EventDescription
getAttribute lesen
setAttribute festlegen
deletedelete-Operator
ownKeysgetWonPropertyNames-Methode und getOwnPropertySymbols
constructnew-Operator
definePropertydefineProper ty-Methode
getOwnPropertyDescriptorgetOwnPropertyDescriptor-Methode
preventExtensions preventExtensions-Methode
isExtensibleisExtensible-Methode
setPrototypeOfsetPrototypeOf-Methode (d. h. set.__proto__)
getPrototypeOfget PrototypeOf-Methode (d. h. nehmen Sie .__proto__)

Verwenden Sie Proxy, um eine einfache datengesteuerte Ansicht zu schreiben.

Nachdem wir nun die grundlegende Verwendung von Proxy verstanden haben, können wir ihn als Proxy für den setter des Objekts verwenden, um das Datenlaufwerk zu implementieren. setter来实现数据驱动了。

首先定义一个与数据同ID的DOM元素:

<div id="firstName"></div>
<div id="age"></div>
Nach dem Login kopieren

data设置Proxy代理,代理其setter,在其中对DOM进行操作:

var data = {
  firstName: "",
  age: 0
}
var p_data = new Proxy(data, {
    set: function (obj, prop, newval) {
      document.getElementById(prop).innerText = newval;
      obj[prop] = newval;// 别忘了实现原有逻辑
      return true; // setter代理的要求,处理成功后返回true
    }
})
Nach dem Login kopieren

之后设定初值,并设定相关交互,并且注意,操作的都是代理p_data而并非data:

p_data.firstName = "两秒后显示姓名……"
p_data.age = 25
setTimeout(() => {
  p_data.firstName = "林语琛"
}, 2000)
document.getElementById("grow").onclick = function() {
  p_data.age++
}
Nach dem Login kopieren

这样就实现了数据驱动,只要任意对p_data

Definieren Sie zunächst ein DOM-Element mit derselben ID wie die Daten:

var data = {
  firstName: "",
  age: 0
}
var p_data = new Proxy(data, {
    set: function (obj, prop, newval) {
      document.getElementById(prop).innerText = newval;
      obj[prop] = newval;
      return true
    }
})
p_data.firstName = "两秒后显示姓名……"
p_data.age = 25
setTimeout(() => {
  p_data.firstName = "林语琛"
}, 2000)
document.getElementById("grow").onclick = function() {
  p_data.age++
}
Nach dem Login kopieren
Richten Sie einen Proxy-Proxy für data ein, stellen Sie dessen setter als Proxy bereit und betreiben Sie das DOM darin : rrreee

Legen Sie dann den Anfangswert und die relevanten Interaktionen fest und beachten Sie, dass der Agent p_data anstelle von data betrieben wird:

rrreee

Dieser Weg ist datengesteuert erreicht, solange Ändern Sie den Attributwert von p_data beliebig und der Inhalt des DOM kann direkt geändert werden:

JS🎜rrreee🎜[Verwandte Empfehlungen: 🎜Javascript-Video-Tutorial🎜, 🎜Web-Frontend🎜]🎜

Das obige ist der detaillierte Inhalt vonJavaScript-Proxyobjekt-Proxy-Ersterfahrung mit einfacher datengesteuerter Ansicht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
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