Eine kurze Diskussion zur Logikextraktion und Feldanzeige von Vue3 in Projekten

Eine kurze Diskussion zur Logikextraktion und Feldanzeige von Vue3 in Projekten

Logische Schichtung

Wenn wir vue3 zur Entwicklung von Projekten verwenden,
Wie erfolgt die regionale Schichtung? ? ? ?
Beispielsweise hat eine Region eines einfachen Partikels [Abfragelogik, geänderte Speicherlogik, neue Hinzufügungslogik, Löschlogik]
Diese Seite kann weitere Bereiche enthalten. Bereich A, Bereich B, Bereich C ... [Es gibt viele Logiken]
Zu diesem Zeitpunkt können wir die Logik eines Bereichs trennen

Trennen Sie Geschäfte aus verschiedenen Regionen

Standard exportieren {
  aufstellen () {
    let {queryDo,addDo,delDO,EditDo}=allFun();
    queryDo(); //Die Abfrageschnittstelle wird aufgerufen}
}

// Dies ist die Logik des Bereichs A der Seitenfunktion allFun(){
  console.log('Ich bin die direkte Anweisung in der allFun-Funktion und werde ausgeführt.')
  Funktion queryDo(){
    console.log('Ich frage die Schnittstelle ab und rufe die Backend-Daten auf')
  }
  Funktion addDo(){
    console.log('Ich bin neu')
  }
  Funktion delDO(){
    console.log('Ich habe gelöscht')
  }
  Funktion EditDo(){
    console.log('Ich bin die Editor-Schnittstelle')
  }
  zurückgeben {queryDo,addDo,delDO,EditDo}
}
</Skript>

Vorteile dieser Vorgehensweise

  • Wenn wir die allFun-Funktion sehen.
  • Wir können die ganze Logik dieses Bereichs kennen
  • Enthält CRUD. Praktisch für spätere Wartung

Wie geht man mit einem solchen Szenario um?

Wenn wir Geschäftslogik schreiben,
Wir haben schließlich festgestellt, dass die Bereiche A und B beide dieselbe Schnittstelle aufrufen müssen, aber da Bereich A die aufgerufene Schnittstelle bereits geschrieben hat, möchte ich die Schnittstelle in Bereich A direkt aufrufen.

<Skript>
Standard exportieren {
  aufstellen () {
    // Die hier verwendete Struktur ist Bereich A let {queryDo,addDo,delDO,EditDo}=aAreaAllFun();

    // Bereich B let {querHander}=bAreaAllFun();

    return {queryDo,addDo,delDO,EditDo,querHander}
  }
}

// Dies ist die Logik eines bestimmten Bereichs auf der Bereichsseite A Funktion aAreaAllFun(){
  Funktion queryDo(){
    console.log('Ich bin die Abfrageschnittstelle von Bereich A')
  }
  Funktion addDo(){
    console.log('Ich bin neu')
  }
  Funktion delDO(){
    console.log('Ich habe gelöscht')
  }
  Funktion EditDo(){
    console.log('Ich bin die Editor-Schnittstelle')
  }
  zurückgeben {queryDo,addDo,delDO,EditDo}
}

// Dies ist die Geschäftslogik von Bereich B Funktion bAreaAllFun(){
  // Rufen Sie die Abfrageschnittstelle von Bereich A direkt auf aAreaAllFun().queryDo();

  Funktion querHander(){
    console.log("Abfrageschnittstelle von Bereich B")
  }
 
  return {querHander}
}
</Skript>

Obwohl die Verwendung
aAreaAllFun().queryDo();
Der direkte Aufruf der Abfrageschnittstelle von Bereich A löst das Problem, schafft jedoch ein neues Problem: Die Abfrageschnittstelle ist in Bereich A enthalten.
Der letzte Ansatz besteht darin, die Abfrageschnittstelle zu trennen.
Dies erleichtert auch unsere spätere Wartung

Optimierung

<Skript>
Standard exportieren {
  aufstellen () {
     // Dies ist die Logik eines bestimmten Bereichs auf der Bereichsseite A let {addDo,delDO,EditDo}=aAreaAllFun()
    
    // Dies ist die Logik eines bestimmten Bereichs auf der Seite „Bereich B“ let {querHander}=bAreaAllFun();

    return {queryDo,addDo,delDO,EditDo,querHander}
  }
}

// Öffentliche Abfrageschnittstelle. Viele Bereiche können die Funktion queryDo(){ verwenden.
  console.log('Ich bin die Abfrageschnittstelle der Region, ich wurde herausgezogen')
}

// Dies ist die Logik eines bestimmten Bereichs auf der Bereichsseite A Funktion aAreaAllFun(){
 
  Funktion addDo(){
    console.log('Ich bin neu')
  }
  Funktion delDO(){
    console.log('Ich habe gelöscht')
  }
  Funktion EditDo(){
    console.log('Ich bin die Editor-Schnittstelle')
  }
  zurückgeben {addDo,delDO,EditDo}
}

// Dies ist die Geschäftslogik von Bereich B Funktion bAreaAllFun(){
  // Rufen Sie die öffentliche Abfrageschnittstelle direkt auf queryDo();

  Funktion querHander(){
    console.log("Abfrageschnittstelle von Bereich B")
  }
 
  return {querHander}
}
</Skript>

reactive muss nicht unbedingt in der Setup-Funktion geschrieben werden

Viele Freunde denken, dass reaktiv in die Setup-Funktion geschrieben werden muss. Tatsächlich ist das nicht der Fall. Es kann dort geschrieben werden, wo Sie es brauchen. Beispielsweise können Sie reaktiv in der folgenden Funktion aAreaAllFun verwenden.

<Vorlage>
  <div>
    <h2>Name: {{ areaData.info.name}}</h2>
    <h2>Alter: {{ areaData.info.age}}</h2>
    <h2>Geschlecht: {{ areaData.info.sex}}</h2>
  </div>
</Vorlage>
<Skript>
importiere { reaktiv } von '@vue/reactivity';
Standard exportieren {
  aufstellen () {
 
    let {addDo,areaData}=aAreaAllFun();

    gibt {addDo,areaData} zurück
  }
}
// Dies ist die Logik eines bestimmten Bereichs auf der Bereichsseite A Funktion aAreaAllFun(){
  let areaData = reaktiv({
    Info:
      Name: 'Zhang San',
      Alter:20,
      Geschlecht: männlich
    }
  })
  Funktion addDo(){
    console.log('Ich bin neu')
  }
  gibt {addDo,areaData} zurück
}
</Skript>

So zeigen Sie den Wert direkt auf der Seite an

Im obigen Beispiel wollen wir Name, Alter und Geschlecht implementieren, wir brauchen areaData.info.xxx
Das ist zu mühsam, wir müssen es optimieren

<Vorlage>
  <div>
    <h2>Name: {{ name}}</h2>
    <h2>Alter: {{ age}}</h2>
    <h2>Geschlecht: {{ sex}}</h2>
  </div>

  <button @click="ChangeCont">Wert ändern</button>
</Vorlage>
<Skript>
importiere { reaktiv, toRefs } von „vue“;
Standard exportieren {
  aufstellen () {
    let {name,alter,geschlecht,ChangeCont }=aAreaAllFun();
    returniere {Name, Alter, Geschlecht, ChangeCont}
  }
}
// Dies ist die Logik eines bestimmten Bereichs auf der Bereichsseite A Funktion aAreaAllFun(){
  let areaData = reaktiv({
    Info:
      Name: 'Zhang San',
      Alter:20,
      Geschlecht: männlich
    }
  })

  Funktion ChangeCont(){
    // Wenn Sie den Wert auf diese Weise ändern, reagiert die Ansicht nicht. [Fehler]
    //areaData.info={
    // Name: 'Li Si',
    //Alter:21,
    // Geschlecht: 'männlich'
    // }

    // Dies ist OK, um die Ansicht korrekt zu aktualisieren [ok]
    areaData.info.name='123'
    areaData.info.age=12
    areaData.info.sex='männlich'
  }

  // toRefs können ein responsives Objekt in ein normales Objekt umwandeln.
  // Jeder Wert dieses gemeinsamen Objekts ist ein Verweis.
  // Da es ein Verweis wird, müssen wir den Wert verwenden.
  zurück {ChangeCont,...toRefs(areaData.info)}
}
</Skript>

Dies ist das Ende dieses Artikels über die Logikextraktion und Feldanzeige von vue3 im Projekt. Weitere relevante Inhalte zur Logikextraktion und Feldanzeige von vue3 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vue implementiert die Methode zur Anzeige von Daten in benutzerdefinierten Feldern

<<:  Mysql 8.0.18 Hash-Join-Test (empfohlen)

>>:  Tutorial zur Verwendung von Portainer zum Herstellen einer Verbindung mit einem Remote-Docker

Artikel empfehlen

HTML (CSS-Stilspezifikation) muss lauten

CSS-Stilspezifikationen 1. Klassenauswahl 2. Tag-...

Centos7.3 So installieren und implementieren Sie Nginx und konfigurieren https

Installationsumgebung 1. gcc-Installation Um ngin...

Detaillierte Erklärung des TARGET-Attributs des HTML-Hyperlink-Tags A

Das Hyperlink-Tag <a> stellt einen Linkpunkt...

Docker View-Prozess, Speicher und Cup-Verbrauch

Docker-Ansichtsprozess, Speicher, Cup-Verbrauch S...

Beispiele für die Verwendung von React Ref

Inhaltsverzeichnis Was ist ref So verwenden Sie r...

Gespeicherte MySQL-Prozeduren und allgemeine Funktionscodeanalyse

Das Konzept der gespeicherten MySQL-Prozedur: Ein...

So deaktivieren Sie Webseitenstile mit dem Webentwickler von Firefox

Voraussetzung: Das Webentwickler-Plugin wurde inst...

URL-Darstellung in HTML-Webseiten

In HTML werden gängige URLs auf verschiedene Arten...

Vue + Spring Boot realisiert die Bestätigungscodefunktion

In diesem Artikelbeispiel wird der spezifische Co...