Vue verwendet die Methode in der Referenzbibliothek mit Quellcode

Vue verwendet die Methode in der Referenzbibliothek mit Quellcode

Der offizielle Quellcode von monaco-editor-vue lautet wie folgt

Index.js

importiere * als Monaco aus „monaco-editor/esm/vs/editor/editor.api“;

Funktion noop() { }

export { monaco };

Standard exportieren {
  Name: 'MonacoEditor',
  Requisiten: {
    diffEditor: { Typ: Boolean, Standard: false }, //Ob der Diff-Modus verwendet werden soll width: { Typ: [String, Number], Standard: '100%' },
    Höhe: {Typ: [Zeichenfolge, Zahl], Standard: '100 %'},
    Original: String, //Nur im Diff-Modus gültig. Wert: String,
    Sprache: {Typ: String, Standard: 'Javascript'},
    Thema: {Typ: String, Standard: 'vs'},
    Optionen: {Typ: Objekt, Standard() {Return {};}},
    editorMounted: {Typ: Funktion, Standard: noop},
    editorBeforeMount: {Typ: Funktion, Standard: noop}
  },

  betrachten:
    Optionen:
      tief: wahr,
      handler(Optionen) {
        dieser.editor und dieser.editor.updateOptions(Optionen);
      }
    },

    Wert() {
      dieser.editor und dieser.Wert !== dieser._getValue() und dieser._setValue(dieser.Wert);
    },

    Sprache() {
      wenn(!dieser.editor) returniere;
      if(this.diffEditor){ //Sprache im Diff-Modus aktualisieren
        const { original, geändert } = this.editor.getModel();
        monaco.editor.setModelLanguage(original, diese.Sprache);
        monaco.editor.setModelLanguage(geändert, diese.Sprache);
      }anders
        monaco.editor.setModelLanguage(dieser.editor.getModel(), diese.sprache);
    },

    Thema() {
      dieser.editor && monaco.editor.setTheme(dieses.thema);
    },

    Stil() {
      dieser.editor && dies.$nextTick(() => {
        dieser.editor.layout();
      });
    }
  },

  berechnet: {
    Stil() {
      zurückkehren {
        Breite: !/^\d+$/.test(diese.Breite) ? diese.Breite : `${diese.Breite}px`,
        Höhe: !/^\d+$/.test(diese.Höhe) ? diese.Höhe : `${diese.Höhe}px`
      }
    }
  },

  montiert () {
    dies.initMonaco();
  },

  vorZerstören() {
    dieser.editor und dieser.editor.dispose();
  },

  rendern (h) {
    zurückkehren (
      <div Klasse = "monaco_editor_container" Stil = {this.style}></div>
    );
  },

  Methoden: {
    initMonaco() {
      const { Wert, Sprache, Design, Optionen } = dies;
      Object.assign(options, this._editorBeforeMount()); //Vor der Initialisierung des Editors this.editor = monaco.editor[this.diffEditor ? 'createDiffEditor' : 'create'](this.$el, {
        Wert: Wert,
        Sprache: Sprache,
        Thema: Thema,
        ...Optionen
      });
      dieser.diffEditor und dieses._setModel(dieser.Wert, dieses.Original);
      this._editorMounted(this.editor); //Nachdem der Editor initialisiert wurde},

    _getEditor() {
      wenn(!dieser.editor) return null;
      diesen.diffEditor zurückgeben? diesen.editor.modifiedEditor: diesen.editor;
    },

    _setModel(value, original) { //Modell im Diff-Modus festlegen
      const { Sprache } = dies;
      const originalModel = monaco.editor.createModel(original, Sprache);
      const modifiedModel = monaco.editor.createModel(Wert, Sprache);
      dieser.editor.setModel({
        Original: Originalmodell,
        geändert: geändertesModell
      });
    },

    _setValue(Wert) {
      let editor = this._getEditor();
      wenn (Editor) returniere editor.setValue(Wert);
    },

    _getValue() {
      let editor = this._getEditor();
      wenn(!editor) return '';
      gibt editor.getValue() zurück;
    },

    _editorBeforeMount() {
      const-Optionen = this.editorBeforeMount(monaco);
      Rückgabeoptionen || {};
    },

    _editorMounted(Herausgeber) {
      dies.editorMounted(editor, monaco);
      wenn(dieser.diffEditor){
        editor.onDidUpdateDiff((Ereignis) => {
          konstanter Wert = this._getValue();
          this._emitChange(Wert, Ereignis);
        });
      }anders{
        editor.onDidChangeModelContent(Ereignis => {
          konstanter Wert = this._getValue();
          this._emitChange(Wert, Ereignis);
        });
      }
    },

    _emitChange(Wert, Ereignis) {
      this.$emit('ändern', Wert, Ereignis);
      dies.$emit('Eingabe', Wert);
    }
  }
}

Wie verwende ich die Methode _getValue in der obigen Bibliothek, wenn ich Vue verwende?

Definieren Sie ref = "", verwenden Sie this.$refs.exampleEditor._setValue('')

Beachten Sie den folgenden Code

test.vue

<Vorlage>
  <div>
    <MonacoEditor ref="exampleEditor" width="100%" height="300" theme="vs-dark" language="javascript" :options="Optionen" @change="codeInput" />
  </div>
</Vorlage>
<Skript>
MonacoEditor aus „monaco-editor-vue“ importieren
Standard exportieren {
  Komponenten:
    MonacoHerausgeber
  },
  Daten() {
    zurückkehren {
    }
  },
  vorErstellen() {
  },

  montiert() {
  },
  Methoden: {
    dies.$refs.exampleEditor._setValue('')
  }
}

Dies ist das Ende dieses Artikels über die Verwendung der Methoden von Vue in der Referenzbibliothek mit Quellcode. Weitere relevante Inhalte von Vue unter Verwendung der Referenzbibliothek 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:
  • So ändern Sie Schriftarten in Vue und speichern Schriftarten lokal, ohne auf Online-Schriftbibliotheken zu verweisen
  • So verweisen Sie auf die Element-UI-Komponentenbibliothek in Vue2.0

<<:  Docker-Installationsschritte für Redmine

>>:  So verwenden Sie DQL-Befehle zum Abfragen von Daten in MySQL

Artikel empfehlen

Zusammenfassung der Kenntnisse und der Verwendung von Linux-VI-Befehlen

Detaillierte Erklärung des Linux-Befehls vi Der v...

Detaillierte Erklärung der MySQL-Zeichenfolgenverkettungsfunktion GROUP_CONCAT

Im vorherigen Artikel habe ich ein tabellenübergr...

Eine kurze Erläuterung der HTML-Tabellen-Tags

Besprechen Sie hauptsächlich seine Struktur und ei...

Tiefgreifendes Verständnis von Worker-Threads in Node.js

Inhaltsverzeichnis Überblick Die Geschichte der C...

Implementierung einer geplanten Sicherung in Mysql5.7

1. Suchen Sie mysqldump.exe im MySQL-Installation...

DOCTYPE-Element ausführliche Erklärung vollständige Version

1. Übersicht In diesem Artikel wird das DOCTYPE-E...

So verbinden Sie XShell und Netzwerkkonfiguration in CentOS7

1. Linux-Netzwerkkonfiguration Bevor Sie das Netz...

Herausforderung des HTML-Symbol-zu-Entity-Algorithmus

Herausforderung: Wandelt die Zeichen &, <,...

Beispielcode für die Konvertierung von MySQL-Zeilen und -Spalten

1. Nachfrage Wir haben drei Tabellen. Wir müssen ...

JS implementiert die Drag- und Platzhalterfunktionen von Elementen

In diesem Blogbeitrag geht es um eine Schwierigke...

Der gesamte Prozess der Entwicklung eines Google-Plug-Ins mit vue+element

Einfache Funktion: Klicken Sie auf das Plug-In-Sy...

Lassen Sie uns ausführlich über Vues Mixin und Vererbung sprechen

Inhaltsverzeichnis Vorwort Mischen Mixin-Hinweis ...