2017-02-03 8 views
24

मैं रूटर की दुकान के संदर्भ में कर रहा हूँ का उपयोग कर ngrx परियोजना (https://github.com/ngrx/router-store) की तुलना में।ngrx रूटर की दुकान परियोजना के उद्देश्य को समझना ही कोणीय 2 रूटर

मैं स्पष्ट कैसे इस परियोजना का उपयोग नहीं कर रहा हूँ ...

उदाहरण के लिए की परियोजना प्रलेखन से निम्न नमूना डालें:

store.dispatch(go(['/path', { routeParam: 1 }], { query: 'string' })); 

यह करने के लिए एक स्थानापन्न के रूप में इस्तेमाल करने के लिए है कोणीय 2 राउटर: router.navigate(['/path...?

... या मुझे केवल कुछ परिस्थितियों में ngrx राउटर-स्टोर का उपयोग करना चाहिए? (यदि ऐसा है तो?)

एनजीएक्स राउटर-स्टोर के साथ क्या होता है जब एक कोणीय 2 राउटर एचटीएमएल लिंक उदा। <a routerLink="/heroes" क्लिक किया गया है?

अधिक आम तौर पर, क्या कोई कृपया कृपया बता सकता है कि एनजीएक्स राउटर-स्टोर प्रोजेक्ट द्वारा सादा कोणीय 2 राउटर का उपयोग करने के मुकाबले क्या हासिल किया जा सकता है?

या फिर से लिखने के लिए, एनजीआरएक्स राउटर-स्टोर कोणीय 2 राउटर के अतिरिक्त क्या लाता है?

संपादित: ngrx निश्चित रूप से ngrx उदाहरण-ऐप (https://github.com/ngrx/example-app) है के बारे में जानकारी और नमूने के एक दिलचस्प स्रोत।

मैं रूटर की दुकान वहाँ करने के लिए एक निर्भरता पाया, लेकिन मैं जहां रूटर-स्टोर अनुप्रयोग के भीतर प्रयोग किया जाता है ढूँढने में सक्षम नहीं किया गया है ...

FYI करें, यहाँ टिप्पणी में पाया जा सकता है रूटर दुकान के बारे में उदाहरण ऐप्लिकेशन:

@ ngrx/रूटर-स्टोर करने की तारीख की दुकान में रूटर राज्य रखता है और रूटर के राज्य के लिए सच्चाई का एकल स्रोत के रूप में की दुकान का उपयोग करता है।

उत्तर

41

@ngrx/router-store मौजूद है इतना है कि यह संभव है की दुकान के लिए एक आवेदन के मार्ग राज्य के लिए single source of truth होने के लिए।

इसके बिना, आवेदन स्थिति - वर्तमान मार्ग - स्टोर में प्रतिनिधित्व नहीं किया जाएगा। इसका मतलब है कि का उपयोग करके समय-यात्रा डीबगिंग संभव नहीं होगा, क्योंकि मार्ग का प्रतिनिधित्व करने वाले स्टोर में कोई राज्य नहीं होगा और मार्ग परिवर्तनों का प्रतिनिधित्व करने में कोई कार्रवाई नहीं होगी।

router-store कोणीय राउटर को प्रतिस्थापित नहीं करता है; यह सिर्फ कार्यवाही के लिए और राउटर के लिए श्रोताओं को तार देता है।

जब आप एक मार्ग कार्रवाई go action creator का उपयोग कर फेंकना, specifed पथ युक्त एक "[Router] Go" कार्रवाई router-store जो तब इसी रूटर प्रणाली को बुलाती से सुना जाता है। जब router-store सुनता है - राउटर से - कि मार्ग बदल गया है, यह "[Router] Update Location" मार्ग परिवर्तन का प्रतिनिधित्व करने वाली क्रिया को उत्सर्जित करता है और वह क्रिया अद्यतन में राउटर स्थिति को देखती है।

हैं, तो go कार्रवाई निर्माता का उपयोग करने के बजाय, एक routerLink एक मार्ग परिवर्तन को प्रभावित करने के लिए, router-store परिवर्तन सुनेंगे प्रयोग किया जाता है और एक "[Router] Update Location" कार्रवाई है कि दुकान के रूटर राज्य अद्यतन देखेंगे फेंकना होगा।

तो, क्या मार्ग क्रियाओं या अधिक पारंपरिक लिंक के माध्यम से बदल दिया गया है, स्टोर में हमेशा राउटर स्थिति होती है।

"[Router] Update Location" मार्ग परिवर्तनों का प्रतिनिधित्व करने वाले कार्यों के साथ, आप DevTools के माध्यम से रूट परिवर्तनों को पूर्ववत कर सकते हैं - ऐसा कुछ नहीं होगा यदि स्टोर में राउटर राज्य का प्रतिनिधित्व नहीं किया गया हो। इसके अलावा

+4

, आप को पता है रुचि हो सकती है:

आप Redux DevTools इस्तेमाल नहीं किया गया है, तो मैं आप उन्हें बाहर की जाँच की सिफारिश करेंगे कि कोणीय v3 राउटर ['@ ngrx/राउटर'] (https://github.com/ngrx/router) पर आधारित था और [" @ ngrx' टीम "के साथ एक साथ बनाया गया था [http: // angularjs.blogspot.com। औ/2016/06/सुधार आने के लिए मार्ग-in.html)। – cartant

+6

क्या हम इसे उत्पादन में हटाते हैं? यदि इसका उपयोग केवल DevTools पृष्ठ संक्रमण में मदद करने के लिए है या इसे अन्य कार्यों के लिए उपयोग किया जा सकता है – ramon22

+0

@ ramon22: क्या आपको इसका उत्तर मिला? –

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