यदि आप अपने ऐप में कार्यों की श्रृंखला को एक सूची की तरह मानते हैं, या शायद एक स्ट्रीम की तरह, तो यह अधिक समझ में आ सकता है।
इस काल्पनिक उदाहरण लें:
['apple', 'banana', 'cherry'].reduce((acc, item) => acc + item.length, 0)
पहला तर्क प्रपत्र (Int, String) => Int
के एक समारोह है। शुरुआती मूल्य के साथ, आप reduce
पास करते हैं जिसे "रेड्यूसर फ़ंक्शन" कहा जा सकता है, और आपको आइटमों की श्रृंखला को संसाधित करने का नतीजा मिलता है। तो आप कह सकते हैं, रेड्यूसर फ़ंक्शन बताता है कि परिणाम बदलने के लिए प्रत्येक क्रमिक व्यक्तिगत आइटम के साथ क्या किया जाता है। दूसरे शब्दों में, reducer फ़ंक्शन पहले आउटपुट और अगले मान लेता है, और यह अगले आउटपुट की गणना करता है।
यह रेडक्स रेड्यूसर के समान है: यह पिछले राज्य और वर्तमान कार्रवाई को लेता है, और यह अगले राज्य की गणना करता है।
वास्तविक कार्यात्मक प्रोग्रामिंग शैली में, आप अवधारणाओं और परिणाम के लिए लागू अर्थ को अवधारणा से मिटा सकते हैं, और केवल इनपुट और आउटपुट के "आकार" पर ध्यान केंद्रित कर सकते हैं।
अभ्यास में, Redux reducers आम तौर पर ओर्थोगोनल, इस अर्थ में कि किसी दिए गए कार्रवाई के लिए, वे करते हैं में नहीं सभी एक ही गुण में परिवर्तन कर, जो यह आसान अपनी जिम्मेदारियों को विभाजित है और combineReducers
साथ उत्पादन एकत्र करने के लिए बनाता है कर रहे हैं।
वे रेड्यूसर बिल्कुल ठीक हैं क्योंकि वे आपके द्वारा 'कम' करने के लिए गुजरने वाले फ़ंक्शन की तरह व्यवहार करते हैं, जिसके पास डिफ़ॉल्ट मान और अन्य मान तक पहुंच है, और आपको अपना संभावित रूप से परिवर्तित डिफ़ॉल्ट मान वापस देता है।'राज्य -> कार्रवाई -> राज्य ' – azium
किसी भी अन्य नाम से गुलाब ... शायद विपणन; नक्शा/कमी अब एक buzzword है ... – dandavis