Fassen Sie die Probleme zusammen, die bei der Verwendung der Vue Element-Benutzeroberfläche auftreten

Fassen Sie die Probleme zusammen, die bei der Verwendung der Vue Element-Benutzeroberfläche auftreten

Das auf vue2.0 basierende Element-UI-Framework ist sehr benutzerfreundlich und eignet sich sehr gut für eine schnelle Entwicklung. Bei der Durchführung Ihrer eigenen Projekte werden Sie jedoch immer noch auf verschiedene Probleme stoßen. Die offizielle Dokumentation zu einigen Problemen ist nicht sehr detailliert. Im Folgenden finden Sie einige Hinweise zu einigen häufigen Problemen oder Problemen, die bei der Verwendung von Element-UI aufgetreten sind.

1. DateTimePicker Datumsauswahlbereich ist die aktuelle Zeit und vor der aktuellen Zeit

<Vorlage>
    <div>
        <el-Datumsauswahl
            Größe="klein"
            löschbar
            :picker-options="Picker-Optionen"
            v-Modell="Datumsbereich"
            Typ="Datumsbereich"
            Werteformat="jjjj-MM-tt"
            Bereichstrennzeichen = "bis"
            start-placeholder="Startdatum"
            end-placeholder="Enddatum"></el-date-picker>
    </div>
</Vorlage>

<Skript>
    Standard exportieren {
        Daten () {
            zurückkehren {
                pickerOptions: {
                    disabledDate (Zeit) {
                        Zeit zurückgeben.getTime() > Date.now()
                    }
                },
                Datumsbereich: []
            }
        }
    }
</Skript>

Es gibt eine weitere Situation, in der Sie nur die Zeit nach der aktuellen Zeit auswählen können, einschließlich Stunden, Minuten und Sekunden. Wenn die ausgewählte Zeit kleiner als die aktuelle Zeit ist, wird sie automatisch mit den aktuellen Stunden, Minuten und Sekunden ausgefüllt. Zu diesem Zeitpunkt können Sie „watch“ verwenden, um Eigenschaften oder Ereignisse zu überwachen und damit umzugehen.

<Vorlage>
    <div>
        <el-date-picker Größe="klein" löschbar Typ="Datumsbereich" v-model="Datumsbereich"
            :picker-options="Picker-Optionen"
            Werteformat="jjjj-MM-tt"
            Bereichstrennzeichen = "bis"
            start-placeholder="Startdatum"
            end-placeholder="Enddatum"></el-date-picker>
    </div>
</Vorlage>

<Skript>
    Standard exportieren {
        Daten () {
            zurückkehren {
                pickerOptions: {
                    disabledDate (Zeit) {
                        Rückgabewert: Zeit.getTime() < Date.now() - 1 * 24 * 3600 * 1000
                    }
                },
                Datumsbereich: []
            }
        },
        betrachten:
            dateRange (val) { //Dies kann auch durch ein Änderungsereignis ersetzt werden var st = new Date(val) * 1000 / 1000
                wenn (st < Datum.jetzt()) {
                    this.dateRange = neues Datum()
                }
            }
        }
    }
</Skript>

2. Aufteilen des DateTimePicker-Datumsauswahlbereichs-Arrays

Im Projekt aufgetretene Anforderungen: Das an den Datumswähler vom Typ „daterange“ gebundene Wertdatum ist ein Array, aber die vom Backend empfangenen Parameter für Startdatum und Enddatum sind getrennt, und die während des Echos zurückgegebenen Daten sind ebenfalls getrennt

Erstellen Sie die Datei arrayUtil.js

// arrayUtil.js
/**
 * @description Sicheres Abrufen der Indexdaten, die dem Array entsprechen* @param { Array } arr
 * @param { int } Index
 */
exportiere const saveGet = (arr, index) => {
    wenn(arr & Array.isArray(arr)) {
        gibt arr[index] zurück;
    } anders {
        Rückgabe undefiniert;
    }
}

Importieren und Aufrufen einer .vue-Datei

// .vue fileimport { saveGet } von './utils/arrayUtil';

<el-Datumsauswahl 
    Typ="Datumsbereich" 
    v-Modell="Datum" 
    Werteformat="jjjj-mm-tt" 
    Format="jjjj-mm-tt" 
    start-placeholder="Startdatum" 
    end-placeholder="Enddatum" 
    Stil="width: 100%;"></el-date-picker>

Standard exportieren {
    Daten() {
        zurückkehren {
            Datum: [] // Datumsbereich}
    },
    // Berechnen Sie die an das Backend übergebenen Parameter (aufgeteiltes Datumsbereichs-Array)
    berechnet: {
        queryParams() {
            zurückkehren {
                ... ...
                vonDatum: saveGet(this.form.date, 0),
                toDate: saveGet(dieses.Formular,Datum, 1),
                ... ...
            };
        }
    },
}

Beim Echo fügen Sie einfach das vom Backend zurückgegebene FromDate und ToDate zu einem Array zusammen.

3. Der Wert/die Bezeichnung der el-select-Selektoroptionen wird gespleißt

<el-select placeholder="Bitte auswählen" style="width:100%" filterbar v-model="info" löschbar >
    <el-Option
      v-for="Element in Infoliste"
      :Schlüssel="info.id"
      :label="`Name: ${item.name} - ID-Nr.: ${item.idNo}`"
      :Wert="Artikel-ID">
      <span style="float: left">{{ Artikel.Tabellenname }}</span>
      {{ Artikel.Ebene }}</span>
    </el-Option>
</el-Auswahl>

Das obige v-model="info" ist die ausgewählte Benutzer-ID, die vom Backend zurückgegeben wird, infoList sind die Informationen aller Benutzer, label ist die Verkettung von Benutzername - Benutzer-ID-Nr. Beim Echo einfach abgleichen und filtern und dann verketten und anzeigen.

Die Anzeige sieht wie folgt aus:

4. Die übergeordnete und untergeordnete Komponente des El-Dialogs überträgt den Wert und beim Schließen des El-Dialogs tritt ein Fehler auf

Beim zweiten Einkapseln von el-dialog tritt beim Schließen des Dialogs der folgende Fehler auf

Der spezifische Code lautet wie folgt:

// Übergeordnete Komponente <el-button type="primary" size="mini" @click="dialogVisible=true">Hinzufügen</el-button>
<com-dialog :dialogVisible.sync="dialogVisible" @closeDialog="closeDialog"></com-dialog>

// Unterkomponente <template>
    <el-dialog title="Neu" :visible.sync="dialogSichtbar" @close="closeDialog">
</Vorlage>

<Skript>
Standard exportieren {
  Requisiten: {
      dialogSichtbar: {
          Typ: Boolean,
          Standard: false
      }
  },
  Methoden:{
      //Dialog schließen
      Dialog schließen(){
        dies.$emit('update:closeDialog', false);
      }
  },
};
</Skript>

Der Grund für den Fehler liegt darin, dass das Abschlussereignis der untergeordneten Komponente mit dem Abschlussereignis der übergeordneten Komponente in Konflikt steht. Die Props-Eigenschaft der untergeordneten Komponente muss von der übergeordneten Komponente gesteuert werden, und der sichtbare Wert kann nicht direkt geändert werden. Der Synchronisierungsmodifikator entspricht hier dem El-Dialog, der den Wert der übergeordneten Komponente direkt ändert. Entfernen Sie also einfach die .sync-Datei der übergeordneten und der untergeordneten Komponente.

Eine andere Möglichkeit besteht darin, die Close-Methode in Before-Close zu ändern. Der spezifische Code lautet wie folgt:

// Übergeordnete Komponente <el-button type="primary" size="mini" @click="dialogVisible=true">Hinzufügen</el-button>
<com-dialog :dialogVisible.sync="dialogVisible" @closeDialog="closeDialog"></com-dialog>

// Unterkomponente <template>
    <el-dialog title="Neu" :visible.sync="dialogVisible" :before-close="closeDialog">
</Vorlage>

<Skript>
Standard exportieren {
  Requisiten: {
      dialogSichtbar: {
          Typ: Boolean,
          Standard: false
      }
  },
  Methoden:{
      //Dialog schließen
      Dialog schließen(){
        dies.$emit('closeDialog', false);
      }
  },
};
</Skript>

5. Anpassung der Beschriftung für el-form-item

Es ist erforderlich, Eingabeaufforderungstext in die Beschriftung des Formulars einzufügen. Die spezifischen Anzeigeanforderungen lauten wie folgt:

In der API-Dokumentation verfügt der Formularelement-Slot über ein Label-Attribut, das zum Anpassen des Inhalts des Label-Textes verwendet wird. Die Implementierung ist wie folgt:

<el-form-item prop="name">
    <span slot="Bezeichnung">
        Benutzername<i>(Buchstaben, Zahlen und Sonderzeichen werden unterstützt)</i>
    </span>
    <el-input v-Modell="Name"></el-input>
</el-form-item>

Passen Sie dann Schriftart und Farbe entsprechend dem Stil an.

6. el-input verwendet Clearable, um Inhalte zu löschen und eine Bestätigungsaufforderung auszulösen

Der el-input des Formulars verfügt über eine Eingabevalidierung und der Auslösemodus ist „unscharf“. Wenn zum Löschen des Inhalts „clearable“ verwendet wird, wird die Validierungsaufforderung nicht ausgelöst. Das Dokument stellt eine Methode focus() für el-input bereit, die beim Löschen des Inhalts aufgerufen wird. Wenn der Fokus verloren geht, wird eine Überprüfung ausgelöst. Die konkrete Umsetzung sieht wie folgt aus:

<el-input placeholder="Bitte eingeben" v-model="form.name" clearable ref="nameRef" @clear="clearInput('nameRef')"></el-input>
                             
// Formularinhalt löschen event clearInput (refName) {
    dies.$refs[refName].focus()
}

Oben finden Sie eine detaillierte Zusammenfassung der Probleme, die bei der Verwendung von Vue Element UI auftreten. Weitere Informationen zu Vue Element UI finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Lösen Sie das Auslöseproblem des Änderungsereignisses, wenn Vue ElementUI El-Select verwendet.
  • Vue verwendet die Tabelle im Ant-Design, um den Ereignisvorgang beim Klicken auf eine Zeile auszulösen
  • Lösen Sie das Problem der Verwendung von ElementUI-Verpackungsfehlern in Vue2
  • Vue wird im nativen Ereignis des AntDesign-Frameworks oder der ElementUI-Framework-Komponente zweimal ausgelöst

<<:  Der Unterschied zwischen MySQL-Datenbankhost 127.0.0.1 und localhost

>>:  Nginx führt Anforderungsverbindungen zusammen und beschleunigt den Website-Zugriff – Beispiele

Artikel empfehlen

Detaillierte Erklärung des Ungültigkeitsprozesses des VUE-Tokens

Inhaltsverzeichnis Ziel Gedankenanalyse Code-Land...

Detaillierte Erklärung zur Verwendung von MySQL Online DDL

Inhaltsverzeichnis Text LOCK-Parameter ALGORITHMU...

Detaillierte Erklärung und Zusammenfassung der URL zur Datenbankverbindung

Detaillierte Erklärung und Zusammenfassung der UR...

Zusammenfassung der Namenskonventionen für HTML und CSS

CSS-Benennungsregeln Header: Header Inhalt: Inhalt...

Nginx-Überwachungsprobleme unter Linux

Nginx-Installation Stellen Sie sicher, dass die v...

So entwerfen und erstellen Sie adaptive Webseiten

Mit der Verbreitung von 3G nutzen immer mehr Mens...

Der gesamte Prozess der Installation von Gogs mit Pagoda Panel und Docker

Inhaltsverzeichnis 1 Installieren Sie Docker im B...

Der Unterschied und die Wahl zwischen Datum und Uhrzeit und Zeitstempel in MySQL

Inhaltsverzeichnis 1 Unterschied 1.1 Raumbelegung...

Implementierung der kollaborativen Nutzung von React-Komponenten

Inhaltsverzeichnis Verschachtelung Kommunikation ...

Einführung in Keyword-Design-Methoden im Webdesign

Häufig ignorieren wir beim Erstellen der Homepage ...