"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Vue.js के साथ कैलकुलेटर बनाने से मैंने क्या सीखा है

Vue.js के साथ कैलकुलेटर बनाने से मैंने क्या सीखा है

2024-11-08 को प्रकाशित
ब्राउज़ करें:869

What I’ve Learned from Building a Calculator with Vue.js

अपने चौथे प्रोजेक्ट के लिए, मैंने Vue.js का उपयोग करके एक कैलकुलेटर ऐप विकसित किया। यह समझने में एक मूल्यवान अनुभव था कि उपयोगकर्ता इनपुट को कैसे संभालना है, गतिशील परिणाम प्रदर्शित करना है और जावास्क्रिप्ट के साथ गणना करना है। इस ऐप को बनाते समय मैंने जो प्रमुख सबक सीखे, उनका विवरण यहां दिया गया है।

1. उपयोगकर्ता इनपुट को संभालना और डिस्प्ले को अपडेट करना

कैलकुलेटर को उपयोगकर्ता इनपुट (संख्या और ऑपरेटर) को स्वीकार करने और डिस्प्ले को गतिशील रूप से अपडेट करने की आवश्यकता है। मैंने वर्तमान इनपुट और परिणाम पर नज़र रखने के लिए Vue के प्रतिक्रियाशील गुणों का उपयोग किया। Vue में रेफ फ़ंक्शन ने इन मानों को संग्रहीत और संशोधित करना आसान बना दिया:

const result = ref('');
const calculated = ref(false);

हर बार जब कोई उपयोगकर्ता किसी नंबर या ऑपरेटर पर क्लिक करता है, तो परिणाम प्रॉपर्टी अपडेट हो जाती है, जिससे यह सुनिश्चित हो जाता है कि डिस्प्ले सबसे हालिया इनपुट दिखाता है। फ़ंक्शन हैंडलक्लिक का उपयोग परिणाम में मान जोड़ने के लिए किया जाता है:

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;
    }
}

यह उपयोगकर्ता इंटरैक्शन को संभालने और प्रतिक्रियाशील गुणों के आधार पर इंटरफ़ेस को अपडेट करने में एक आवश्यक सबक था।

2. ऑपरेटरों का प्रबंधन: अनावश्यक इनपुट से बचना

कैलकुलेटर बनाने में एक प्रमुख चुनौती यह सुनिश्चित करना है कि कई ऑपरेटरों को लगातार नहीं जोड़ा जाए (उदाहरण के लिए, 3 4 जैसे इनपुट से बचना)। इसे संबोधित करने के लिए, यदि अंतिम अक्षर पहले से ही एक ऑपरेटर है तो मैंने एक ऑपरेटर को बदलने के लिए एक चेक जोड़ा:

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
};

यह विधि सुनिश्चित करती है कि इनपुट स्ट्रिंग के अंत में केवल एक ऑपरेटर मौजूद है, जिससे कैलकुलेटर की मजबूतता में सुधार होता है।

3. इनपुट साफ़ करना और हटाना

कैलकुलेटर को सभी इनपुट को साफ़ करने (AC बटन का उपयोग करके) या अंतिम इनपुट कैरेक्टर को हटाने (DEL बटन का उपयोग करके) के लिए कार्यक्षमता प्रदान करने की आवश्यकता है। मैंने इन दो कार्रवाइयों को क्लियरऑल और स्पष्ट तरीकों से लागू किया:

  • सभी साफ़ करें (एसी): संपूर्ण इनपुट को रीसेट करता है।
const clearAll = () => {
    result.value = '';
    calculated.value = false;
};
  • अंतिम वर्ण हटाएं (DEL): इनपुट स्ट्रिंग के अंतिम वर्ण को हटाता है।
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();
    }
};

यह स्ट्रिंग हेरफेर को संभालने और एक सहज उपयोगकर्ता अनुभव प्रदान करने में एक उपयोगी अभ्यास था।

4. गणना करना

कैलकुलेटर की मुख्य कार्यप्रणाली में से एक उपयोगकर्ता द्वारा दर्ज किए गए भावों का मूल्यांकन करना है। मैंने इनपुट एक्सप्रेशन के परिणाम की गणना करने के लिए जावास्क्रिप्ट के अंतर्निहित eval() फ़ंक्शन का उपयोग किया:

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
};

हालांकि इस बुनियादी कैलकुलेटर के लिए eval() सरल और प्रभावी है, मैंने मनमाने उपयोगकर्ता इनपुट को संभालते समय उत्पन्न होने वाले संभावित सुरक्षा जोखिमों के बारे में सीखा है। भविष्य की परियोजनाओं में, मैं बेहतर सुरक्षा और लचीलेपन के लिए एक कस्टम पार्सर लिखने पर विचार कर सकता हूँ।

5. व्यू और बूटस्ट्रैप के साथ यूजर इंटरफेस

कैलकुलेटर इंटरफ़ेस बनाने के लिए, मैंने त्वरित और प्रतिक्रियाशील डिज़ाइन के लिए बूटस्ट्रैप का उपयोग किया। बटनों को संख्याओं और ऑपरेटरों के लिए उपयुक्त रंग कोडिंग के साथ एक ग्रिड में व्यवस्थित किया गया है:

7
8
9
-

मैंने सीखा कि दृश्य रूप से आकर्षक और उत्तरदायी कैलकुलेटर इंटरफ़ेस बनाने के लिए बूटस्ट्रैप की कक्षाओं के साथ Vue के इवेंट हैंडलिंग को कैसे संयोजित किया जाए।

6. एज केस को संभालना और यूएक्स को बढ़ाना

कैलकुलेटर बनाते समय मुझे कई एज केस का सामना करना पड़ा। उदाहरण के लिए, गणना करने के बाद, यदि कोई उपयोगकर्ता एक नया नंबर दर्ज करता है, तो कैलकुलेटर को पिछले परिणाम को रीसेट करने की आवश्यकता होती है। इसे परिकलित ध्वज की जाँच करके नियंत्रित किया गया:

if (calculated.value) {
    result.value = value; // Replace the result with the new value
    calculated.value = false; // Reset the calculated flag
}

एक अन्य उपयोगी सुविधा डिस्प्ले को अधिक सहज बनाने के लिए स्वरूपित करना था, जैसे कि यदि उपयोगकर्ता अपना मन बदलता है तो अंतिम ऑपरेटर को स्वचालित रूप से बदलना, उपयोगकर्ता अनुभव में सुधार करना

अंतिम विचार: कैलकुलेटर बनाने से मुझे क्या हासिल हुआ

इस परियोजना ने Vue.js का उपयोग करके गतिशील इनपुट को संभालने, स्थिति को प्रबंधित करने और एक स्वच्छ उपयोगकर्ता इंटरफ़ेस बनाने में गहन जानकारी प्रदान की। मैंने निम्नलिखित क्षेत्रों में व्यावहारिक ज्ञान प्राप्त किया:

  • राज्य प्रबंधन: उपयोगकर्ता के इनपुट और परिणाम को गतिशील रूप से कैसे ट्रैक और अपडेट करें।
  • इवेंट हैंडलिंग: उपयोगकर्ता क्रियाओं का जवाब देना (संख्या क्लिक, ऑपरेटर क्लिक और परिणामों की गणना)।
  • यूआई/यूएक्स विचार: यह सुनिश्चित करना कि कैलकुलेटर किनारे के मामलों को खूबसूरती से संभालता है, और एक स्पष्ट और सहज उपयोगकर्ता इंटरफ़ेस प्रदान करता है।
  • स्ट्रिंग हेरफेर: वैध गणितीय अभिव्यक्ति बनाने के लिए इनपुट स्ट्रिंग्स को पार्स करना और हेरफेर करना।

इस कैलकुलेटर का निर्माण एक पुरस्कृत अनुभव था जिसने उपयोगकर्ता इनपुट को प्रबंधित करने और Vue.js का उपयोग करके गतिशील, इंटरैक्टिव वेब एप्लिकेशन बनाने की मेरी क्षमता को मजबूत किया। इन कौशलों को और अधिक जटिल परियोजनाओं में लागू करने के लिए उत्सुक हूं!

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/willowjr/what--learned-from-building-a-calculator-with-vuejs-vuejs-3cj7?1 यदि कोई उल्लंघन है, तो इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3