


Teilen Sie fünf nützliche VueUse-Funktionen, lassen Sie uns sie gemeinsam nutzen!
VueUse ist ein Open-Source-Projekt von Anthony Fu. Es bietet Vue-Entwicklern eine große Anzahl grundlegender Composition-API-Dienstprogrammfunktionen für Vue2 und Vue3.
Es bietet Dutzende Lösungen für gängige Anwendungsfälle von Entwicklern, z. B. die Nachverfolgung von Ref-Änderungen, die Erkennung der Sichtbarkeit von Elementen, die Vereinfachung gängiger Vue-Muster, Tastatur-/Mauseingaben usw. Dies ist eine großartige Möglichkeit, wirklich Entwicklungszeit zu sparen, da wir nicht alle diese Standardfunktionen selbst hinzufügen müssen, sondern sie einfach verwenden und nutzen (nochmals vielen Dank für Ihre Bemühungen).
Ich mag die VueUse-Bibliothek, weil sie die Entwickler bei der Entscheidung, welche Dienstprogramme bereitgestellt werden sollen, wirklich in den Vordergrund stellt, und es ist eine gut gepflegte Bibliothek, weil sie mit der aktuellen Version von Vue Schritt hält.
Was sind die praktischen Methoden von VueUse?
Wenn Sie die vollständige Liste aller Dienstprogramme sehen möchten, empfehlen wir Ihnen, sich die offizielle Dokumentation anzusehen. Zusammenfassend lässt sich sagen, dass es in VueUse 9 Arten von Funktionen gibt.
Animation – Enthält benutzerfreundliche Übergänge, Zeitüberschreitungen und Timing-Funktionen.
Browser – Kann mit verschiedenen Bildschirmsteuerungen, Zwischenablagen, Einstellungen und mehr verwendet werden.
Komponente (Komponente) – Bietet Abkürzungen für verschiedene Komponentenmethoden
Sensoren (Sensoren) – Wird zum Abhören verschiedener DOM-Ereignisse, Eingabeereignisse und Netzwerkereignisse verwendet
State (Status) – Benutzerstatus verwalten (global, lokaler Speicher, Sitzungsspeicher)
Dienstprogramm (Utility-Methode) – verschiedene Utility-Methoden, wie Getter, Bedingungen, Ref-Synchronisierung usw.
Beobachten – Fortgeschrittenere Beobachtertypen wie pausierbare Beobachter, abgebrochene Beobachter und bedingte Beobachter
Andere – Verschiedene Arten von Funktionen für Ereignisse, WebSockets und Web-Worker
Installieren Sie Vueuse im Vue-Projekt
Eine der größten Eigenschaften von VueUse ist, dass es mit Vue2 und Vue3 mit nur einem Paket kompatibel ist!
Es gibt zwei Optionen für die Installation von VueUse: npm oder CDN
npm i @vueuse/core # yarn add @vueuse/core
<script src="https://unpkg.com/@vueuse/shared"></script> <script src="https://unpkg.com/@vueuse/core"></script>
Empfohlenes NPM, weil es einfacher zu verstehen ist, aber Wenn wir ein CDN verwenden, kann darauf über window.VueUse zugegriffen werden.
Mit npm können Sie die gewünschte Methode durch Dekonstruktion erhalten:
import { useRefHistory } from '@vueuse/core'
useRefHistory verfolgt Änderungen in reaktionsfähigen Daten
useRefHistory verfolgt jede an ref vorgenommene Änderung und speichert sie in einem Array. Dies ermöglicht es uns, unseren Anwendungen problemlos Rückgängig- und Wiederherstellungsfunktionen bereitzustellen.
Schauen wir uns ein Beispiel an, in dem wir einen Textbereich erstellen, der rückgängig gemacht werden kann
Der erste Schritt besteht darin, unsere Basiskomponenten ohne VueUse zu erstellen – mit ref, textarea und für Rückgängig und Wiederherstellen. Hergestellt aus Schaltflächen.
<template> <p> <button> Undo </button> <button> Redo </button> </p> <textarea v-model="text"/> </template> <script setup> import { ref } from 'vue' const text = ref('') </script> <style scoped> button { border: none; outline: none; margin-right: 10px; background-color: #2ecc71; color: white; padding: 5px 10px;; } </style>
Als nächstes importieren Sie useRefHistory und extrahieren dann den Verlauf sowie die Rückgängig- und Wiederherstellungsattribute aus dem Text über useRefHistory.
import { ref } from 'vue' import { useRefHistory } from '@vueuse/core' const text = ref('') const { history, undo, redo } = useRefHistory(text)
Immer wenn sich unsere Referenz ändert und das Verlaufsattribut aktualisiert wird, wird ein Listener ausgelöst.
Um zu sehen, was die unterste Ebene tut, drucken wir den Verlaufsinhalt aus. Und rufen Sie die Funktionen „Rückgängig“ und „Wiederherstellen“ auf, wenn Sie auf die entsprechende Schaltfläche klicken.
- {{ entry }}
Es gibt auch verschiedene Optionen, um dieser Funktion weitere Funktionen hinzuzufügen. Beispielsweise können wir einen Drilldown zu reaktiven Objekten durchführen und die Anzahl solcher Verlaufsdatensätze begrenzen.
const { history, undo, redo } = useRefHistory(text, { deep: true, capacity: 10, })
onClickOutside off modal
onClickOutside erkennt jeden Klick außerhalb eines Elements. Meiner Erfahrung nach ist der häufigste Anwendungsfall für diese Funktion das Schließen eines Modals oder Popups.
Normalerweise möchten wir, dass unser Modal den Rest der Webseite blockiert, um die Aufmerksamkeit des Benutzers zu erregen und Fehler zu begrenzen. Wenn sie jedoch außerhalb des Modals klicken, soll es geschlossen werden.
Dazu sind nur zwei Schritte erforderlich.
Erstellen Sie eine Vorlagenreferenz für das Element, das Sie erkennen möchten.
Verwenden Sie diese Vorlagenreferenz, um onClickOutside auszuführen.
Dies ist eine einfache Komponente, die das onClickOutside-Popup verwendet.
<template> <button @click="open = true"> Open Popup </button> <div class="popup" v-if='open'> <div class="popup-content" ref="popup"> Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis aliquid autem reiciendis eius accusamus sequi, ipsam corrupti vel laboriosam necessitatibus sit natus vero sint ullam! Omnis commodi eos accusantium illum? </div> </div> </template> <script setup> import { ref } from 'vue' import { onClickOutside } from '@vueuse/core' const open = ref(false) // state of our popup const popup = ref() // template ref // whenever our popup exists, and we click anything BUT it onClickOutside(popup, () => { open.value = false }) </script> <style scoped> button { border: none; outline: none; margin-right: 10px; background-color: #2ecc71; color: white; padding: 5px 10px;; } .popup { position: fixed; top: ; left: ; width: 100vw; height: 100vh; display: flex; align-items: center; justify-content: center; background: rgba(, , , 0.1); } .popup-content { min-width: 300px; padding: 20px; width: 30%; background: #fff; } </style>
useVModel vereinfacht die V-Modell-Bindung.
Ein häufiger Anwendungsfall für Vue-Entwickler ist die Erstellung einer benutzerdefinierten V-Modell-Bindung für eine Komponente. Dies erfordert auch, dass unsere Komponente einen Wert als Requisite akzeptiert. Immer wenn dieser Wert geändert wird, sendet unsere Komponente ein Aktualisierungsereignis an die übergeordnete Klasse.
Die Funktion useVModel vereinfacht dies auf die Verwendung der Standard-Ref-Syntax. Nehmen wir an, wir haben eine benutzerdefinierte Texteingabe und versuchen, ein V-Modell für den Wert seiner Texteingabe zu erstellen. Normalerweise müssen wir eine Wertprop akzeptieren und dann ein Änderungsereignis ausgeben, um den Datenwert in der übergeordneten Komponente zu aktualisieren.
Anstatt ref zu verwenden und props.value und update:value aufzurufen, können wir useVModel verwenden und es als normale Referenz behandeln. Dies trägt dazu bei, die Anzahl der verschiedenen Syntaxen zu reduzieren, die wir uns merken müssen
<template> <div> <input type="text" :value="data" @input="update" /> </div> </template> <script> import { useVModel } from '@vueuse/core' export default { props: ['data'], setup(props, { emit }) { const data = useVModel(props, 'data', emit) console.log(data.value) // equal to props.data data.value = 'name' // equal to emit('update:data', 'name') const update = (event) => { data.value = event.target.value } return { data, update } }, } </script>
每当需要访问value时,我们只需调用.value,useVModel将从我们的组件 props 中给我们提供值。而每当改变对象的值时,useVModel 会向父组件发出一个更新事件。
下面是父组件的一个简单示例
<template> <div> <p> {{ data }} </p> <custom-input :data="data" @update:data="data = $event" /> </div> </template> <script> import CustomInput from './components/CustomInput.vue' import { ref } from 'vue' export default { components: { CustomInput, }, setup () { const data = ref('hello') return { data } } }
使用 intersectionobserver 跟踪元素的可见性
当确定两个元素是否重叠时,useIntersectionObserver 是非常强大的。这方面的一个很好的用例是检查一个元素在视口中是否当前可见。
基本上,它检查目标元素与根元素/文档相交的百分比。如果这个百分比超过了某个阈值,它就会调用一个回调,确定目标元素是否可见。
useIntersectionObserver提供了一个简单的语法来使用IntersectionObserver API。我们所需要做的就是为我们想要检查的元素提供一个模板ref。
默认情况下,IntersectionObserver将以文档的视口为根基,阈值为0.1--所以当这个阈值在任何一个方向被越过时,我们的交集观察器将被触发。
示例:我们有一个假的段落,只是在我们的视口中占据了空间,目标元素,然后是一个打印语句,打印我们元素的可见性。
<template> <p> Is target visible? {{ targetIsVisible }} </p> <div class="container"> <div class="target" ref="target"> <h1>Hello world</h1> </div> </div> </template> <script> import { ref } from 'vue' import { useIntersectionObserver } from '@vueuse/core' export default { setup() { const target = ref(null) const targetIsVisible = ref(false) const { stop } = useIntersectionObserver( target, ([{ isIntersecting }], observerElement) => { targetIsVisible.value = isIntersecting }, ) return { target, targetIsVisible, } }, } </script> <style scoped> .container { width: 80%; margin: auto; background-color: #fafafa; max-height: 300px; overflow: scroll; } .target { margin-top: 500px; background-color: #1abc9c; color: white; padding: 20px; } </style>
运行后,对应的值会更新:
我们还可以为我们的 Intersection Observer 指定更多的选项,比如改变它的根元素、边距(计算交叉点时对根的边界框的偏移)和阈值水平。
const { stop } = useIntersectionObserver( target, ([{ isIntersecting }], observerElement) => { targetIsVisible.value = isIntersecting }, { // root, rootMargin, threshold, window // full options in the source: https://github.com/vueuse/vueuse/blob/main/packages/core/useIntersectionObserver/index.ts threshold: 0.5, } )
同样重要的是,这个方法返回一个 stop 函数,我们可以调用这个函数来停止观察交叉点。如果我们只想追踪一个元素在屏幕上第一次可见的时候,这就特别有用。
在这段代码中,一旦targetIsVisible被设置为true,observer 就会停止,即使我们滚动离开目标元素,我们的值也会保持为 true 。
const { stop } = useIntersectionObserver( target, ([{ isIntersecting }], observerElement) => { targetIsVisible.value = isIntersecting if (isIntersecting) { stop() } }, )
使用 useTransition 做个数字加载动画
useTransition是整个VueUse库中我最喜欢的函数之一。它允许我们只用一行就能顺利地在数值之间进行过渡。
我们可以通过三个步骤来做到这一点。
初始化一个 ref 变量 count ,初始值为 0
使用 useTransition 创建一个变量 output
改变 count 的值
import { ref } from 'vue' import { useTransition, TransitionPresets } from '@vueuse/core' const count = ref(0) const output = useTransition(count , { duration: 3000, transition: TransitionPresets.easeOutExpo, }) count.value = 5000 </script>
然后在 template 中显示 output 的值:
<template> <h2> <p> Join over </p> <p> {{ Math.round(output) }}+ </p> <p>Developers </p> </h2> </template> <script setup> import { ref } from 'vue' import { useTransition, TransitionPresets } from '@vueuse/core' const count = ref(0) const output = useTransition(count, { duration: 3000, transition: TransitionPresets.easeOutExpo, }) count.value = 5000 </script>
我们还可以使用useTransition 转换整个数字数组。 使用位置或颜色时,这非常有用。 使用颜色的一个很好的技巧是使用计算的属性将RGB值格式化为正确的颜色语法。
<template> <h2 :style="{ color: color } "> COLOR CHANGING </h2> </template> <script setup> import { ref, computed } from 'vue' import { useTransition, TransitionPresets } from '@vueuse/core' const source = ref([, , ]) const output = useTransition(source, { duration: 3000, transition: TransitionPresets.easeOutExpo, }) const color = computed(() => { const [r, g, b] = output.value return `rgb(${r}, ${g}, ${b})` }) source.value = [255, , 255] </script>
总结
这不是VueUse的完整指南。这些只是我平常比较常用的函数,还有很多好用的函数,大家可以自行到官网去学习使用。
【相关推荐:《vue.js教程》】
Das obige ist der detaillierte Inhalt vonTeilen Sie fünf nützliche VueUse-Funktionen, lassen Sie uns sie gemeinsam nutzen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Opazität ist ein Attribut in CSS, das die Gesamttransparenz eines Elements steuert, wobei die Werte von 0 (vollständig transparent) bis 1 (vollständig undurchsichtig) reichen. 1. Es wird häufig für den Image -Schwebeverlusteffekt verwendet und verbessert die interaktive Erfahrung, indem der Übergang der Deckkraft festgelegt wird. 2.. Erstellen einer Hintergrundmaskenschicht, um die Textlesbarkeit zu verbessern; 3.. Visuelle Feedback von Steuertasten oder Symbolen im behinderten Zustand. Beachten Sie, dass es im Gegensatz zu RGBA, was nur den angegebenen Farbteil betrifft, alle Kinderelemente betrifft. Eine reibungslose Animation kann durch den Übergang erreicht werden, aber häufiger Gebrauch kann die Leistung beeinflussen. Es wird empfohlen, es in Kombination mit dem Willenswechsel oder der Transformation zu verwenden. Die rationale Anwendung der Opazität kann die Seitenhierarchie und die Interaktivität verbessern, sollte jedoch vermeiden, dass sie die Benutzer beeinträchtigen.

INCSS, PropertyInheritanceCeffectshowStylesArepased von der Austriebungstochildren.

Verwenden Sie die :: Auswahlpseudoelement von CSS, um den Hervorhebungsstil anzupassen, wenn der Webseitentext ausgewählt wird, um die Ästhetik und Einheit der Seite zu verbessern. 1. Grundeinstellungen: Definieren Sie die Hintergrundfarbe und Farbe durch :: Auswahl, z. B. gelbe Hintergrund mit dunkelgrauen Schriftarten; Spezifische Elemente wie P :: Auswahl können ebenfalls begrenzt sein. 2. Kompatibilitätsverarbeitung: Fügen Sie das Präfix -Webkit hinzu, um mit Safari und mobilen Browsern kompatibel zu sein, und die Firefox- und Kantenstandards werden gut unterstützt. 3. Achten Sie auf die Lesbarkeit: Vermeiden Sie übermäßigen Farbkontrast oder zu ausgefallen und sollten mit dem Gesamtdesign koordiniert werden. Wählen Sie beispielsweise eine weiche blaue Basis im dunklen Modus, um den visuellen Komfort zu verbessern. Angemessene Verwendung kann die Textur der Schnittstelle verbessern, Details ignorieren

Wortausbruch und Überlauf-Wrap (ehemals Word-Wrap), wenn es sich um lange Wörter oder unzerbrechlichen Inhalte handelt. 1. Wortbrech kontrolliert, wie man Wörterlinien in Blockelementen durchbricht, brechen alle langen Wörter auf, um zu brechen. 2. Überlaufschreiber trennen Sie lange Wörter, wenn nötig, um Überlauf zu verhindern, und das Break-Wort macht den Kontext intelligenter. 3. Verwenden Sie in den Nutzungsszenarien Word-Break: Break-All für Code und verwenden Sie Überlaufwerk: Break-Wort für Benutzerkommentare. 4. Achten Sie auf Unterschiede in der Browserkompatibilität und unterschiedlichen mobilen Verhaltens

Häufige Ursachen und Antwortmethoden für Front-End-Speicherlecks: 1. Der Ereignishörer wird nicht ordnungsgemäß gereinigt, z. 2. Die Verschlussreferenz führt dazu, dass die Variable recycelt wird, z. B. die externen Variablen in setInterval werden kontinuierlich referenziert. 3. Die Bibliothek von Drittanbietern wird nicht ordnungsgemäß verwendet, z. B. die Vue-Uhr ist nicht ordnungsgemäß gereinigt. Die Erkennungsmethode umfasst die Verwendung von Chromedevtools -Leistungs- und Speicherplatten zur Analyse von Speichertrends und Objektfreisetzungen. Best Practices, um Speicherlecks zu vermeiden, umfassen manuelle Reinigungsnäher beim Entladen von Komponenten, die Vermeidung von Verweise auf große Objekte in Verschluss, Verwendung von Schwächen/Schwachanlagen anstelle von gewöhnlichen Sammlungen, Optimierung komplexer struktureller Operationen und regelmäßiger Leistung

Um den Beginn eines Absatzes zur Verbesserung der visuellen Anziehungskraft zu verschönern, besteht eine gängige Praxis darin, Pseudoelemente von CSS zu verwenden oder das Dokument manuell zu stylen. In der Webentwicklung kann P :: Erste Buchstabe verwendet werden, um den ersten Buchstabenstil wie Vergrößerung, Fettdruck und Verfärbung festzulegen, aber es sollte beachtet werden, dass es nur für Elemente auf Blockebene geeignet ist. Wenn Sie die gesamte erste Zeile hervorheben möchten, verwenden Sie P :: First-Line, um Stile hinzuzufügen. In Dokumentsoftware wie Word können Sie das erste Buchstabenformat manuell anpassen oder Stilvorlagen erstellen, und InDesign verfügt über eine integrierte "Erstverkt" -Funktion, die für Veröffentlichungen und Design geeignet ist. Bei der Bewerbung müssen Sie auf Details achten, z. B. das Vermeiden komplexer Stile, die das Lesen beeinflussen und die Kompatibilität und Formatkonsistenz sicherstellen.

Browser-Standardstile gewährleisten die grundlegende Lesbarkeit, indem Sie automatisch Margen, Füllungen, Schriftarten und Formelementstile anwenden, aber inkonsistente Cross-Browser-Layouts verursachen. 1. Der Standardrand und das Füllen ändern den Layoutfluss, wie den Abstand von Titeln, Absätzen und Listen; 2. Die Standard -Schrifteinstellungen wirken sich auf die Lesbarkeit aus, z. B. 16px -Schriftgröße und TimesNewroman -Schriftart; 3. Die Formelemente sind in verschiedenen Browsern sehr unterschiedlich, daher muss das Erscheinungsbild zurückgesetzt werden. 4. Einige Tags wie stark und sie haben Standard -Schwerpunkte und müssen explizit überschrieben werden. Zu den Workarounds gehört die Verwendung von Normalize.css, Zurücksetzen von Stilen oder global klaren Rändern und Füllungen, während Sie Schriftarten und Formestile für Konsistenz anpassen.

Das White-Space-Attribut wird in CSS verwendet, um die Verarbeitung leerer Räume in Elementen zu steuern, wodurch sich hauptsächlich das Anzeigenverhalten von Räumen, Registerkarten und Newlines beeinflusst. Zu den gemeinsamen Werten gehören: 1.Normal (Standardwert, leeres Einstieg in einen Raum, automatische Linienbrechung); 2.Pre (alle Blankchen halten, nur Linienbrüche in Newlines); 3.Nowrap (falten Sie leer, aber keine Zeilenumbrüche); 4. PRE-WRAP (BLAND, Zeilenpausen erlauben); 5.Pre-Line (falten Sie leer, Zeilenumbrichtungen im Quellcode). Wenn Sie das Code-Einbau oder das Chat-Datensatzformat beibehalten müssen, wird empfohlen, vor der Wrap zu verwenden. Für lange Wörter oder URLs, die Layout-Überlauf verursachen, können Sie Wortausbruch oder Überfloge kombinieren
