2016-11-09 13 views
6

मैं रेडक्स-देखने योग्य सीखने की प्रक्रिया में हूं, और मुझे कुछ संदेह हैं:क्या हमें एक एपिक प्रति एक्शन प्रकार बनाना चाहिए? रेडक्स-अवलोकन योग्य

क्या हमें प्रत्येक कार्रवाई के लिए एक महाकाव्य बनाना चाहिए?

export const actionEpic = action $ => action$.ofType('ACTION') 
export const action2Epic = action $ => action$.ofType('ACTION2') 

या क्या हम इसे स्विच के साथ रेड्यूसर जैसे कई लोगों के लिए बना सकते हैं? मिडलवेयर में गठबंधन करने के लिए प्रत्येक एकल एपिक आयात करें

उत्तर

8

महाकाव्य का एक बड़ा बहुमत एक ही क्रिया से मेल खाता है, उदाहरण के लिए action$.ofType(SOMETHING)। ऐसा इसलिए होता है क्योंकि आम तौर पर ये क्रियाएं कुछ साइड इफेक्ट (जैसे AJAX कॉल) को ट्रिगर करती हैं जो एक ही कार्य के लिए विशिष्ट होती है।

किसी उपयोगकर्ता के मॉडल को लाने जैसे कुछ के बारे में सोचें। आप आमतौर पर केवल इस प्रक्रिया को शुरू करने के लिए FETCH_USER सुनना चाहते हैं, लेकिन निश्चित रूप से एक ही महाकाव्य अन्य कार्यों को सुन सकता है कि इन-फ्लाइट अनुरोधों को रद्द करना कब या समान है।

यदि आप एक महाकाव्य में साइड इफेक्ट चिंताओं को मिलाते हैं, जैसे कि उपयोगकर्ता को लाने और उपयोगकर्ता की पोस्ट लाने दोनों को संभालने के लिए, आप अपने महाकाव्य को बनाए रखने और परीक्षण करने के लिए कठिन बनाते हैं।

उन सभी ने कहा, कोई नियम नहीं हैं। कुछ दुष्प्रभावों को शुरू करने के लिए कई क्रियाओं को सुनने के लिए एक महाकाव्य के लिए कानूनी (लेकिन दुर्लभ) मामले हैं। जैसे यदि एक महाकाव्य कुछ सामान्य कार्यों को संभालता है जो एकाधिक डोमेन पर लागू होता है, तो लॉगिंग सबसे स्पष्ट है लेकिन अन्य भी हैं।

बस reducers की तरह, कई महाकाव्य एक ही कार्रवाई के लिए सुन सकते हैं, हालांकि यह केवल तब समझ में आता है जब उनके बीच कम समन्वय की आवश्यकता होती है।

+0

समझा, बहुत बहुत धन्यवाद, इस उपकरण को महान बनाते रहें। – Casy

+0

आपका स्वागत है, और धन्यवाद! – jayphelps

+0

@jayphelps क्या आप कुछ प्रकाश डालने पर ध्यान देंगे कि एक महाकाव्य में कितने कार्यों को सुनेंगे? http://stackoverflow.com/questions/43540419/redux-observable-fire-same-epic-for-multiple-actions – Edmund

संबंधित मुद्दे