Vue implementiert Buchverwaltungsfall

Vue implementiert Buchverwaltungsfall

In diesem Artikelbeispiel wird der spezifische Code von Vue zur Implementierung der Buchverwaltung zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

Falleffekt

Fallideen

1. Bücherliste

  • Implementieren statischer Listeneffekte
  • Implementierung von Template-Effekten auf Basis von Daten
  • Behandeln Sie die Aktionsschaltflächen für jede Zeile

2. Bücher hinzufügen

  • Erkennen Sie die statische Wirkung der Form
  • Datenbindung für Buchformularfelder hinzufügen
  • Schaltflächenereignisbindung hinzufügen
  • Implementieren und Hinzufügen von Geschäftslogik

3. Ändern Sie das Buch

  • Ändern Sie die Informationen und füllen Sie sie in das Formular aus
  • Senden Sie das Formular nach der Änderung erneut
  • Wiederverwenden von Add- und Modify-Methoden

4. Bücher löschen

  • Methode zur Verarbeitung der Bindungszeit der Schaltfläche „Löschen“
  • Implementieren der Geschäftslogik zum Löschen

5. Allgemeine Anwendungsszenarien für Funktionen

  • Filter (Datum formatieren)
  • Benutzerdefinierte Anweisungen (Formularfokus erhalten)
  • Berechnete Eigenschaften (Zählen der Anzahl der Bücher)
  • Listener (überprüft die Existenz des Buches und der Nummer)
  • Lebenszyklus (Buchdatenverarbeitung)

Code

Grundstil

<style type="text/css">
    .Netz {
      Rand: automatisch;
      Breite: 550px;
      Textausrichtung: zentriert;
    }

    .grid Tabelle {
      Breite: 100 %;
      Rahmen-Zusammenbruch: Zusammenbruch;
    }

    .Raster th,
    td {
      Polsterung: 10;
      Rand: 1px gestrichelt orange;
      Höhe: 35px;
    }

    .grid th {
      Hintergrundfarbe: orange;
    }

    .Raster .Buch {
      Breite: 550px;
      Polsterung unten: 10px;
      Polsterung oben: 5px;
      Hintergrundfarbe: Rasengrün;
    }

    .Raster .Gesamt {
      Höhe: 30px;
      Zeilenhöhe: 30px;
      Hintergrundfarbe: Rasengrün;
      Rahmen oben: 1px durchgehend orange;
    }
</Stil>

Statisches Layout

<div id="app">
    <div Klasse='Raster'>
      <div>
        <h1>Buchverwaltung</h1>
        <div Klasse="Buch">
          <div>
            <Bezeichnung für='id'>
              Seriennummer:
            </Bezeichnung>
            <Eingabetyp="Text" id="id" v-Modell='id' :deaktiviert='Flag' v-Fokus>
            <label für="name">
              Name:
            </Bezeichnung>
            <Eingabetyp="Text" ID='Name' v-Modell='Name'>
            <button @click='handle' :disabled='submitFlag'>Senden</button>
          </div>
        </div>
      </div>
      <div Klasse='gesamt'>
        <span>Gesamtzahl der Bücher:</span><span>{{total}}</span>
      </div>
      <Tabelle>
        <Kopf>
          <tr>
            <th>Nummer</th>
            <th>Name</th>
            <th>Zeit</th>
            <th>Betrieb</th>
          </tr>
        </thead>
        <tbody>
          <tr :key="item.id" v-for="Artikel in Büchern">
            <td>{{item.id}}</td>
            <td>{{Artikelname}}</td>
            <td>{{item.date | format('yyyy-MM-dd hh:MM:ss')}}</td>
            <td><a href="" @click.prevent='toEdit(item.id)'>Bearbeiten</a>
              <span>|</span>
              <a href="" @click.prevent='deleteBook(item.id)'>Löschen</a>
            </td>
          </tr>

        </tbody>
      </Tabelle>
    </div>
</div>

Effektrealisierung

<script type="text/javascript" src="../js/vue.js"></script>
  <Skripttyp="text/javascript">
    Vue.direktive('Fokus', {
      eingefügt: Funktion (el) {
        el.fokus();
      }
    })
    Vue.filter('Format', Funktion (Wert, Argument) {
      Funktion Datumsformat (Datum, Format) {
        wenn (Typ des Datums === "Zeichenfolge") {
          var mts = date.match(/(\/Datum\((\d +)\)\/)/);
          wenn (mts && mts.Länge >= 3) {
            Datum = parseInt(mts[2]);
          }
        }
        Datum = neues Datum(Datum);
        if (!date || date.toUTCString() == "Ungültiges Datum") {
          zurückkehren "";
        }
        var Karte = {
          "M": date.getMonth() + 1, //Monat "d": date.getDate(), //Tag "h": date.getHours(), //Stunden "m": date.getMinutes(), //Minuten "s": date.getSeconds(), //Sekunden "q": Math.floor((date.getMonth() + 3) / 3), //Quartal "S": date.getMilliseconds() //Millisekunden };
        format = format.replace(/([yMdhmsqS])+/g, Funktion (alle, t) {
          var v = map[t];
          wenn (v != undefiniert) {
            wenn (alle.Länge > 1) {
              v = '0' + v;
              v = v.substr(v.Länge - 2);
            }
            zurückgeben v;
          } sonst wenn (t === 'y') {
            return (date.getFullYear() + '').substr(4 - alle.Länge);
          }
          alles zurückgeben;
        });
        Rückgabeformat;
      }
      gibt Datumsformat (Wert, Argument) zurück;
    })
    var vm = neuer Vue({
      el: '#app',
      Daten: {
        Flagge: falsch,
        submitFlag: false,
        Ausweis: '',
        Name: '',
        Bücher: []
      },
      Methoden: {
        Griff: Funktion () {
          wenn (diese.flagge) {
            // Der Bearbeitungsvorgang // besteht darin, die entsprechenden Daten im Array entsprechend der aktuellen ID this.books.some((item) => { zu aktualisieren.
              wenn (item.id == this.id) {
                Artikelname = dieser Name
                //Beenden Sie die Schleife nach Abschluss des Aktualisierungsvorgangs. return true;
              }
            })
            diese.flagge = falsch;
          } anders {
            // Ein Buch hinzufügen var book = {};
            Buch.ID = diese.ID;
            Buch.Name = dieser.Name;
            diese.daten = '';
            dies.bücher.push(Buch);
          }
          // Formular löschen this.id = '';
          dieser.name = '';
        }, toEdit: Funktion (ID) {
          //Änderung der ID deaktivieren
          dieses.flag = wahr;
          // Abfrage der zu bearbeitenden Daten basierend auf der ID var book = this.books.filter(function (item) {
            gibt item.id == id zurück;
          });
          console.log(Buch)
          //Senden Sie die erhaltene ID an das Formular this.id = book[0].id;
          dieser.name = buch[0].name;
        },
        deleteBook: Funktion (ID) {
          // Bücher löschen // Den Index des Elements aus dem Array anhand der ID suchen // var index = this.books.findIndex(function (item) {
          // Artikel-ID == ID zurückgeben;
          // });
          // Array-Elemente entsprechend dem Index löschen // this.books.splice(index, 1)
          // -----------------
          // Methode 2: Löschen per Filtermethode this.books = this.books.filter(function (item) {
            gibt item.id zurück != id;
          })
        }
      },
      berechnet: {
        gesamt: Funktion () {
          // Gesamtzahl der Bücher berechnen return this.books.length;
        }
      },
      betrachten:
        Name: Funktion (Wert) {
          // Überprüfen Sie, ob der Buchname bereits vorhanden ist. var flag = this.books.some(function (item) { return item.name == val; })
          wenn (Flagge) {
            // Buchname existiert this.submitFlag = true
          } anders {
            // Der Buchname existiert nicht this.submitFlag = false
          }
        }

      },
      montiert: Funktion () {
        // Wenn die Lifecycle-Hook-Funktion ausgelöst wird. Die Vorlage ist einsatzbereit // Wird im Allgemeinen verwendet, um Hintergrunddaten abzurufen und diese dann in die Vorlage einzufügen var data = [{
          ID: 1,
          Name: "Die Geschichte der Drei Reiche",
          Datum: 252597867777

        }, {
          ID: 2,
          Name: 'Wasserrand',
          Datum: 564634563453
        }, {
          ID: 3,
          Name: 'Traum der Roten Kammer',
          Datum: 345435345343
        }, {
          ID: 4,
          Name: 'Reise nach Westen',
          Datum: 345345346533
        }]
        this.books = Daten
      }
    });
</Skript>

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Vue implementiert Bibliotheksverwaltungssystem
  • Eine kleine Fallstudie zur Implementierung der Buchverwaltung durch Vue
  • Vue.js implementiert Buchverwaltungsfunktion
  • Erstellen Sie schnell eine Buchverwaltungsplattform basierend auf vue.js
  • Detaillierte Erläuterung der Vue-Bibliotheksverwaltungsdemo
  • Realisierung von Buchverwaltungsfunktionen auf Basis von Vue

<<:  CentOS7-Konfiguration Alibaba Cloud Yum-Quellmethodencode

>>:  Linux-Installation MySQL5.6.24 Nutzungsanweisungen

Artikel empfehlen

Hauptfunktionen von MySQL Innodb: Einfügepuffer

Inhaltsverzeichnis Was ist ein Einfügepuffer? Was...

Die Verwendung der Vue-Direktive v-bind und zu beachtende Punkte

Inhaltsverzeichnis 1. v-bind: kann einige Daten a...

Zusammenfassung einiger gängiger Protokolle in MySQL

Vorwort: Im MySQL-System gibt es viele verschiede...

Vue implementiert Beispielcode für Links- und Rechtsgleiteffekte

Vorwort Die bei der persönlichen tatsächlichen En...

MySQL wählt die richtige Speicher-Engine

Wenn es um Datenbanken geht, ist eine der am häuf...

So konfigurieren Sie den Whitelist-Zugriff in MySQL

Schritte zum Konfigurieren des Whitelist-Zugriffs...

Zusammenfassung der 10 am häufigsten gestellten Fragen in Linux-Interviews

Vorwort Wenn Sie sich auf die Stelle eines Betrie...

Besser aussehende benutzerdefinierte CSS-Stile (Titel h1 h2 h3)

Rendern Häufig verwendete Stile im Blog Garden /*...

Vier Methoden zur Verwendung von JS zur Bestimmung von Datentypen

Inhaltsverzeichnis Vorwort 1. Art von 2. Instanz ...

So verwenden Sie die Shell, um Batchvorgänge auf mehreren Servern auszuführen

Inhaltsverzeichnis SSH-Protokoll SSH Verbindungsp...