Für mein viertes Projekt habe ich eine Rechner-App mit Vue.js entwickelt. Es war eine wertvolle Erfahrung, um zu verstehen, wie man mit Benutzereingaben umgeht, dynamische Ergebnisse anzeigt und Berechnungen mit JavaScript durchführt. Hier ist eine Aufschlüsselung der wichtigsten Lektionen, die ich beim Erstellen dieser App gelernt habe.
Der Rechner muss Benutzereingaben (Zahlen und Operatoren) akzeptieren und die Anzeige dynamisch aktualisieren. Ich habe die reaktiven Eigenschaften von Vue verwendet, um den Überblick über die aktuelle Eingabe und das aktuelle Ergebnis zu behalten. Die ref-Funktion in Vue machte es einfach, diese Werte zu speichern und zu ändern:
const result = ref(''); const calculated = ref(false);
Jedes Mal, wenn ein Benutzer auf eine Zahl oder einen Operator klickt, wird die Ergebnisseigenschaft aktualisiert, um sicherzustellen, dass die Anzeige die neueste Eingabe anzeigt. Die Funktion handleClick wird verwendet, um Werte an das Ergebnis anzuhängen:
const handleClick = (value) => { if (calculated.value) { result.value = value; // Reset the result if a calculation was just completed calculated.value = false; } else { result.value = value; } }
Dies war eine wesentliche Lektion im Umgang mit Benutzerinteraktionen und der Aktualisierung der Benutzeroberfläche basierend auf reaktiven Eigenschaften.
Eine zentrale Herausforderung beim Erstellen eines Rechners besteht darin, sicherzustellen, dass nicht mehrere Operatoren nacheinander addiert werden (z. B. die Vermeidung von Eingaben wie 3 4). Um dieses Problem zu beheben, habe ich eine Prüfung hinzugefügt, um einen Operator zu ersetzen, wenn das letzte Zeichen bereits ein Operator ist:
const handleOperatorClick = (operator) => { if (/[ */-]$/.test(result.value)) { result.value = result.value.slice(0, -1) operator; // Replace the last operator } else { result.value = operator; // Add the new operator } calculated.value = false; // Reset flag };
Diese Methode stellt sicher, dass am Ende der Eingabezeichenfolge nur ein Operator vorhanden ist, wodurch die Robustheit des Rechners verbessert wird.
Der Rechner muss über eine Funktion zum Löschen aller Eingaben (mit der Schaltfläche AC) oder zum Löschen des letzten eingegebenen Zeichens (mit der Schaltfläche DEL) verfügen. Ich habe diese beiden Aktionen mit den Methoden „clearAll“ und „clear“ implementiert:
const clearAll = () => { result.value = ''; calculated.value = false; };
const clear = () => { if (result.value && result.value.length > 0) { result.value = result.value.slice(0, -1); // Remove the last character if (result.value.length === 0) { clearAll(); // If the input is empty, reset everything } } else { clearAll(); } };
Dies war eine nützliche Übung zum Umgang mit String-Manipulationen und zur Bereitstellung einer reibungslosen Benutzererfahrung.
Eine der Kernfunktionen eines Taschenrechners besteht darin, vom Benutzer eingegebene Ausdrücke auszuwerten. Ich habe die in JavaScript integrierte Funktion eval() verwendet, um das Ergebnis des Eingabeausdrucks zu berechnen:
const calculate = () => { let stringifiedResult = new String(result.value); result.value = eval(String(stringifiedResult)); // Evaluate the expression calculated.value = true; // Set flag to indicate the calculation is done };
Während eval() für diesen Basisrechner einfach und effektiv ist, habe ich gelernt, welche potenziellen Sicherheitsrisiken es bei der Verarbeitung willkürlicher Benutzereingaben mit sich bringt. In zukünftigen Projekten werde ich möglicherweise versuchen, einen benutzerdefinierten Parser zu schreiben, um die Sicherheit und Flexibilität zu verbessern.
Um die Rechneroberfläche zu erstellen, habe ich Bootstrap für ein schnelles und reaktionsfähiges Design verwendet. Die Schaltflächen sind in einem Raster mit entsprechender Farbcodierung für Zahlen und Operatoren angeordnet:
789-
Ich habe gelernt, wie man Vues Ereignisbehandlung mit Bootstraps Klassen kombiniert, um eine visuell ansprechende und responsive Rechneroberfläche zu erstellen.
Ich bin beim Erstellen des Rechners auf mehrere Randfälle gestoßen. Wenn ein Benutzer beispielsweise nach einer Berechnung eine neue Zahl eingibt, muss der Rechner das vorherige Ergebnis zurücksetzen. Dies wurde durch Überprüfen des berechneten Flags behoben:
if (calculated.value) { result.value = value; // Replace the result with the new value calculated.value = false; // Reset the calculated flag }
Eine weitere nützliche Funktion war die Formatierung der Anzeige, um sie intuitiver zu gestalten, z. B. das automatische Ersetzen des letzten Operators, wenn der Benutzer seine Meinung ändert, was die Benutzererfahrung verbessert.
Dieses Projekt bot einen tiefen Einblick in die Handhabung dynamischer Eingaben, die Verwaltung des Status und den Aufbau einer sauberen Benutzeroberfläche mithilfe von Vue.js. Ich habe praktische Kenntnisse in folgenden Bereichen erworben:
Die Erstellung dieses Rechners war eine lohnende Erfahrung, die meine Fähigkeit stärkte, Benutzereingaben zu verwalten und dynamische, interaktive Webanwendungen mit Vue.js zu erstellen. Ich freue mich darauf, diese Fähigkeiten auf komplexere Projekte anzuwenden!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3