Als ich kürzlich vue verwendete, musste ich feststellen, dass die Breite der linken und rechten Divs durch Ziehen des mittleren Teils angepasst werden kann. In diesem Artikel wird dies organisiert und mit Ihnen geteilt. Die Einzelheiten lauten wie folgt: Rendern Komponenten zerlegenFlex-Layout als Ganzes verwenden Linkes Feld
Rechtes Feld
Zerlegung der EingabeparameterRequisiten
Spielautomaten
Konkrete UmsetzungWie ziehen?Fügen Sie zwischen dem linken und rechten Bereich ein verstecktes Feld hinzu und verstecken Sie dieses Feld im Box-Shadow. In diesem Div werden bestimmte Ereignisse implementiert <div id="line" class="w-2 cursor-move hidden md4:block"onMousedown={hnadleMouseDown}> </div> Ereignisüberwachungconst hnadleMouseDown = (evt: MouseEvent) => { /* Startpunkt abrufen und speichern*/ let { SeiteX, SeiteY } = evt; BasisPosition.SeiteX = SeiteX; BasisPosition.seiteY = SeiteY; /* Auf Mausbewegungsereignisse achten*/ document.addEventListener("mousemove", handleMouseMove); document.addEventListener("mouseup", handleMouseUp); }; const handleMouseMove = evt => { /* Verhindern Sie, dass Standardereignisse des Browsers die Gestenfunktion des Browsers auslösen*/ evt.preventDefault(); /* Stellen Sie den Timer ein, um ein mehrmaliges Reflowing des DOM zu verhindern*/ Zeitüberschreitung löschen(Timer.Wert); timer.value = setTimeout(() => { let { SeiteX } = evt; const baseDiv = document.querySelector(".right-border-shadow"); /* Prozessbreite, ob sie zwischen dem Maximal-/Minimalwert liegt*/ let baseWidth: Zahl | undefiniert = Zahl(BasisDiv?.ClientBreite) + (SeiteX - BasisPosition.SeiteX); Basisbreite = Basisbreite > Zahl (Eigenschaften?.maxBreite) – Eigenschaften.maxBreite: Basisbreite; Basisbreite = Zahl (Basisbreite) < Zahl (Eigenschaften?.Mindestbreite) ? props.minBreite : Basisbreite; baseDiv?.setAttribute("Stil", `Breite: ${baseWidth}px`); /* Ereignis „Breite geändert“ ausgeben */ ctx.emit("Wirkstoffend"); /* Von Speicher zu Speicher */ setStore(Basisbreite); }, 50); }; const handleMouseUp = evt => { /* Nach Beendigung des Ziehens das Abhören des Ereignisses abbrechen und die endgültige Breite ausgeben*/ const width = document.querySelector(".right-border-shadow")?.clientWidth; document.removeEventListener("mousemove", handleMouseMove); Dokument.removeEventListener("mouseup", handleMouseUp); ctx.emit("Drugend", Breite); }; BreitenverarbeitungStil={`Breite:${ store.get("geteilte Breite") ? store.get("geteilte Breite") : props.minBreite ? props.minBreite : 384 }px`} Optimierung Manuelles Ändern der Browserfensterbreite nächsterTick(() => { ctx.emit("laden", ctx); MutationObserver = Fenster.MutationObserver; wenn (MutationObserver) { /* Änderungen im Browserfenster überwachen, diese API ist in einigen Fällen erforderlich */ mo = neuer MutationObserver(Funktion() { const __wm = document.querySelector("#rezie-id"); // __canvasWM nur erneut aufrufen, wenn sich das __wm-Element ändert wenn (!__wm) { //Vermeiden Sie, ständig mo.disconnect() auszulösen; mo = null; ctx.emit("Größe ändern"); } }); mo.observe(document.querySelector("#rezie-id"), { Attribute: true, Teilbaum: wahr, Kinderliste: wahr, }); } }); Nicht wirksam, bitte beraten Sie InsektenBeim Abrufen des Slot-Elementknotens des untergeordneten Elements im OnMounted-Hook der übergeordneten Komponente ist ein Fehler aufgetreten. Der Wert ist null. Die aktuelle Lösung besteht darin, ein Ladeereignis im onMounted-Hook der untergeordneten Komponente auszulösen, und die übergeordnete Komponente verwendet onLoad, um die nachfolgende Logik zu verarbeiten. Git-AdresseLageradresse Vorschauadresse Dies ist das Ende dieses Artikels über die Implementierung der Vue3-Komponente zum Teilen des linken und rechten Panels. Weitere verwandte Inhalte zum Vue3-Inhalt zum Teilen des linken und rechten Panels 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:
|
<<: Fehlerbehebung und Lösungen für das Problem der MySQL-Autoinkrement-ID-Übergröße
>>: So installieren Sie pyenv unter Linux
In diesem Artikel wird die Installations- und Kon...
In diesem Artikel wird hauptsächlich die Analyse ...
1: Fehler beim Replikationssatz masterha_check_re...
In diesem Artikelbeispiel wird der spezifische Co...
Dieser Artikel beschreibt die Bereitstellungsmeth...
1. Methode 1 zum Löschen von Floating Legen Sie d...
Wenn Sie mit Docker noch nicht vertraut sind, seh...
(Win7-System) Tutorial zur Installation einer vir...
Inhaltsverzeichnis 1. Was ist ein Entwurfsmuster?...
...Es ist so, heute wollte ich ein Popup-Fenster m...
Nehmen Sie nun an, dass Sie dem Formular ein Elem...
Inhaltsverzeichnis Überblick Definieren von Metho...
1. Node-Server einrichten + Datenbankverbindung D...
Vorwort: In Vue können Props verwendet werden, um...
1. Verbindung zwischen Docker-Containern Docker i...