Back to Question Center
0

राऊटर v4 चा संदर्भ घ्या: पूर्ण मार्गदर्शक            रूटर v4 चा संदर्भ घ्या: पूर्ण मार्गदर्शकसंपूर्ण विषय: Node.jsAPIsRaw मिमल

1 answers:
रूटर v4 चा संदर्भ घ्या: पूर्ण मार्गदर्शक

प्रतिक्रिया देण्यासाठी उच्च दर्जाचे, सखोल परिचय, आपण कॅनेडियन पूर्ण-स्टॅक विकसक वेस बॉसच्या आधी जाऊ शकत नाही. त्याचा कोर्स येथे वापरून पहा आणि प्राप्त करण्यासाठी SITEPOINT कोड वापरा 25% बंद आणि साइटपॉईंटस मदत करण्यास मदत करण्यासाठी.

प्रतिक्रिया देण्यासाठी अर्थपूर्ण मानक मार्ग रूटिंग लायब्ररी आहे. आपल्याला अनेक दृश्यांसह अभिप्राय अनुप्रयोगाद्वारे नेव्हिगेट करण्याची आवश्यकता असल्यास, आपल्याला URL व्यवस्थापित करण्यासाठी एक राउटरची आवश्यकता असेल - dental equipment appraisal. आपल्या खात्याची UI आणि संकालनातील URL ठेवून मिल्ल्यावरमधे असे काळजी घ्या.

या ट्युटोरियलमध्ये आपणास सामाल v4 आणि आपण त्यास सह करू शकता अशा अनेक गोष्टींवर प्रतिक्रिया द्यायची माहिती दिली आहे.

ओळख

प्रतिक्रिया म्हणजे सिंगल-पेज अॅप्लिकेशन्स (एसपीए) तयार करण्यासाठी एक लोकप्रिय लायब्ररी आहे जी क्लाएंट बाजूला सादर केली जाते. एखाद्या एसपीएकडे अनेक दृश्ये (उर्फ पृष्ठे ) असू शकतात आणि परंपरागत मल्टि-पृष्ठ अॅप्सच्या विपरीत, या दृश्यांमधून नेव्हिगेट केल्याने संपूर्ण पृष्ठ पुन्हा लोड होत नाही. त्याऐवजी, आम्ही वर्तमान दृश्यांत वर्तमान पृष्ठाच्या आत इनलाइन प्रस्तुत करु इच्छित आहोत. मल्टि-पृष्ठ अॅप्समधील अभ्यासाची अंतिम वापरकर्ता, एसएपीमध्ये खालील वैशिष्ट्ये सादर करण्याची अपेक्षा करते:

  • अर्जातील प्रत्येक दृश्यामध्ये एक URL असणे आवश्यक आहे जे त्या दृश्यस विशिष्टपणे निर्दिष्ट करते. हे असे आहे की वापरकर्ता नंतरच्या वेळी संदर्भासाठी URL बुकमार्क करु शकतो - e. जी www. उदाहरण. कॉम / प्रॉडक्ट्स
  • ब्राऊजरची बॅक आणि फॉरवर्ड बटन अपेक्षेप्रमाणे कार्य करायला हवे.
  • गतीशीलपणे व्युत्पन्न नेस्टेड दृश्ये त्यांच्याकडे स्वतःचे एक URL असावे - ई. जी उदाहरण. com / products / shoes / 101 , जेथे 101 हे उत्पादन आयडी आहे.

राउटिंग ही ब्राउझरची URL पृष्ठावर प्रस्तुत केलेल्या गोष्टीसह संकालित करण्याची प्रक्रिया आहे. प्रतिक्रिया राऊटर आपल्याला राऊटींग हाताळू देते जाहीरपणे . घोषणापत्रिक राऊटींग पध्दत आपल्याला "तुमचा मार्ग दिसेल" असे म्हणताना, आपल्या ऍप्लिकेशनमध्ये डेटा प्रवाह नियंत्रित करण्यास परवानगी देते:

  <रूट मार्ग = "/ विषयी" घटक = {बद्दल} />    

आपण आपला घटक कुठेही ठेवू शकता ज्याला आपण आपला मार्ग दर्शविल्या पाहिजेत. , <दुवा> आणि इतर सर्व प्रतिसाद राऊटर एपीआय जे आम्ही हाताळत आहोत ते केवळ घटक आहेत, आपण सहजपणे रिटॅक्टमध्ये रूटिंगसाठी वापरले जाऊ शकता.

प्रारंभ करण्यापूर्वी एक टिप. एक सामान्य गैरसमज आहे की प्रतिक्रिया साम्बाल्ट हे फेसबुकद्वारे विकसित केलेले एक अधिकृत रूटिंग समाधान आहे. प्रत्यक्षात, ही एक तृतीय-पक्ष लायब्ररी आहे जी त्याच्या डिझाइन आणि साधेपणासाठी व्यापक लोकप्रिय आहे. आपली आवश्यकता नेव्हिगेशनसाठी रूटर पर्यंत मर्यादित असल्यास, आपण सुरवातीपासून एक क्वचित राउटर अंमलबजावणी करू शकता जेणेकरून जास्त त्रास होत नाही तथापि, नमुन्याच्या प्रतिक्रियांचे मूलभूत ज्ञान आपल्याला राउट रूपात कसे कार्य करावे ह्याबद्दल चांगल्या प्रकारे अंतर्दृष्टी देईल हे समजून घेणे.

विहंगावलोकन

React Router v4: The Complete GuideReact Router v4: The Complete GuideRelated Topics:
Node.jsAPIsRaw Semalt

  1. मूलभूत नेव्हिगेशन मार्ग
  2. नेस्टेड रूटिंग
  3. मार्ग पॅरामीटर्ससह नेस्टेड रूटिंग
  4. संरक्षित राऊटींग

या मार्गाच्या बांधणीशी संबंधित सर्व संकल्पनांची चर्चा मार्गाने केली जाईल. प्रकल्पासाठीचा संपूर्ण कोड या गीथहब रेपोवर उपलब्ध आहे. एकदा आपण एका विशिष्ट डेमो निर्देशिकामध्ये असता तेव्हा, अवलंबन स्थापित करण्यासाठी npm स्थापित चालवा. डेव्हलपमेंट सर्व्हरवर अर्ज देण्यासाठी, एनएमएम सुरू करा चालवा आणि http: // localhost: 3000 / वर क्लिक करा.

क्षुल्लक सुरुवात!

(9 2) रिचार्ज रूटर सेट करणे

मला असे वाटते की आपल्याकडे आधीच एक विकसक वातावरण आहे आणि चालू आहे. नसल्यास, "रिएक्ट आणि जेएसएक्ससह प्रारंभ करणे" यावर लक्ष द्या. वैकल्पिकरित्या, आपण मूलभूत प्रतिक्रिया प्रकल्पासाठी आवश्यक फाइल्स जनरेट करण्यासाठी रीएक्ट ऍप तयार करू शकता. गितगॉर्न├── पॅकेज जेसन├── सार्वजनिक│ ├── फेविकॉन इको│ ├── निर्देशांक html│ └── मॅनिफेस्ट. जेसन├── README एमडी├── स्रोत│ ├── अॅप सीएसएस│ ├── अॅप जेएस│ ├── अॅप चाचणी जेएस│ ├── निर्देशांक सीएसएस│ ├── निर्देशांक जेएस│ ├── लोगो svg│ └── रजिस्टर सेवावापर. जेएस└── यार्न लॉक करा

रिचार्ज रूटर लायब्ररीत तीन पॅकेजेस आहेत: प्रतिक्रिया-राउटर , प्रतिक्रिया-राउटर- dom आणि प्रतिक्रिया-राउटर-नेटिव्ह . प्रतिक्रिया-राउटर राऊटरसाठी कोर पॅकेज आहे, तर इतर दोन विशिष्ट वातावरण आहेत आपण एखादे वेबसाइट तयार करत असल्यास प्रतिक्रिया-राऊटर-डोम आणि प्रतिक्रिया-राउटर-नेटिव्ह आपण मूळ निवासी वापरुन मोबाइल अॅप्स विकास पर्यावरणात असल्यास वापरणे आवश्यक आहे.

एनपीएम वापरा प्रतिक्रिया-राउटर- dom :

    npm स्थापित --save react-router-dom    

राउटरची मूलभूत माहिती

आमच्या मार्ग कसे दिसतील त्याचे उदाहरण नमळ करा:

  <राउटर><रूट नेमफ पथ = "/" घटक = {होम} /><मार्ग मार्ग = "/ श्रेणी" घटक = {वर्ग} /><मार्ग मार्ग = "/ लॉगिन" घटक = {लॉग इन} /><मार्ग मार्ग = "/ उत्पादने" घटक = {उत्पादने} />    

राउटर

वरील रूपात नमूद केल्याप्रमाणे मूळ मार्ग सेट करण्यासाठी आपल्याला राऊटर घटक आणि अनेक मार्ग घटकांची आवश्यकता आहे. आम्ही एक ब्राउझर-आधारित अनुप्रयोग तयार करत असल्यामुळे, आम्ही प्रतिक्रिया रूटर API वरुन दोन प्रकारचे रूटर वापरू शकतो:

  1. <हॅशरॉटर>

त्यांच्यातील प्राथमिक फरक स्पष्टपणे तयार केलेल्या URL मध्ये दिसतो:

  // http: // उदाहरण कॉम / विषयी// <हॅशरॉटर>http: // उदाहरण कॉम / # / विषयी    

या दोन्हीमध्ये अधिक लोकप्रिय आहे कारण तो आपल्या राउटर इतिहासाचा मागोवा ठेवण्यासाठी HTML5 इतिहास API चा वापर करतो. <हॅशरॉटर> , दुसरीकडे, URL ( खिडकीच्या हॅशचा भाग वापरतात. हॅश ) गोष्टी लक्षात ठेवण्यासाठी. जर आपण लेगसी ब्राऊझरला समर्थन द्याल तर, आपण यासह रहा.

अॅप ​​घटकभोवती घटक लपेटणे.

निर्देशांक जेएस

  / * आयात स्टेटमेन्ट * /आयात 'प्रतिक्रिया' पासून प्रतिक्रिया;'प्रतिक्रिया-डोम' वरून प्रतिक्रियाप्रदर्शन करा;/ * अॅप रिएक्ट कोडसाठी प्रवेश बिंदू आहे. * /अनुप्रयोग आयात करा ' / अॅप्स ';/ * 'प्रतिक्रिया-राउटर- dom' पासून ब्राउझररॉऊटर आयात करा * * /'react-router-dom' वरुन {BrowserRouter} आयात करा;प्रतिक्रिया नोंदवा प्रस्तुत करा (, दस्तऐवज getElementById ('root'));    

टिप: राऊटर घटकात फक्त एकच मूल घटक असू शकतो. मूल तत्व HTML घटक असू शकतो - जसे की div - किंवा प्रतिक्रिया घटक.

प्रतिक्रिया राउटर कार्यान्वित करण्यासाठी, प्रतिक्रिया-राऊटर-डोम लायब्ररीमधून संबंधित API आयात करणे आवश्यक आहे. येथे मी ब्राउझररॉटर मध्ये अनुक्रमणिका आयात केले आहे. जेएस मी अॅप ​​ अॅपमधून अॅप ​​आयात केला आहे जेएस अॅप जेएस , जसे आपण अनुमान काढला असावा, घटकांची पुनरावृत्ती करण्यासाठी प्रवेश बिंदू आहे.

वरील कोड आमच्या संपूर्ण अॅप घटकांसाठी इतिहासाचे एक उदाहरण तयार करते. मला आपण औपचारिकरित्या इतिहासाशी परिचय करूया.

(1 9 0) इतिहास (1 9 2)

इतिहास एक JavaScript लायब्ररी आहे जी आपल्याला सहजतेने सत्र इतिहास कुठेही JavaScript चालविते. इतिहास कमीतकमी API प्रदान करतो जे आपल्याला इतिहास स्टॅक व्यवस्थापित करण्यास, नॅव्हिगेट करण्यास, नेव्हिगेशनची पुष्टी करण्यास आणि सत्रांदरम्यान स्थिती कायम ठेवण्यास मदत करते. - प्रशिक्षण दस्तऐवज प्रतिक्रिया

(1 9 7)

प्रत्येक राउटर घटक एक ऐतिहासिक वस्तू तयार करतो जे वर्तमान स्थानाचा इतिहास ठेवते. स्थान ) आणि मागील स्थानाने स्टॅकमध्ये. वर्तमान स्थान कसे बदलते? इतिहासाच्या वस्तूमध्ये इतिहासाचे प्रकार आहेत. पुश आणि इतिहास. त्याकडे लक्ष ठेवण्यासाठी पुनर्स्थित करा इतिहास. जेव्हा आपण घटक, आणि इतिहासावर क्लिक करता तेव्हा पुश लागू होते. आपण <पुनर्निर्देशन> वापरताना पुनर्स्थापने म्हटले जाते. इतर पद्धती - जसे की इतिहास. goBack आणि इतिहास goForward - परत जाऊन किंवा पृष्ठ अग्रेषित करून इतिहास स्टॅकद्वारे नेव्हिगेट करण्यासाठी वापरले जातात.

चालू रहाणे, आमच्याकडे दुवे आणि मार्ग आहेत.

दुवे आणि मार्ग

घटक हे घटक रूटरमध्ये सर्वात महत्वाचे घटक आहेत. वर्तमान स्थान मार्गाच्या पथशी जुळत असल्यास काही UI देते. आदर्शतः, एक घटक नावाचा एक प्रोप असणे आवश्यक आहे मार्ग , आणि जर पाथनाम वर्तमान स्थानाशी जुळले असेल, तर ते भाषांतरित केले जाईल

दुसरीकडे, <दुवा> घटक पृष्ठे दरम्यान नेव्हिगेट करण्यासाठी वापरले जाते. हे एचटीएमएल एंकर घटकांशी तुलना करते. तथापि, अँकर दुवे वापरल्यास ब्राउझर रीफ्रेश होईल जे आम्ही इच्छित नाही. त्याऐवजी, आम्ही एका विशिष्ट URL वर नेव्हिगेट करण्यासाठी वापरू शकतो आणि एखाद्या ब्राउझर रीफ्रेशशिवाय दृश्य पुन्हा दर्शविले जाऊ शकते.

मूलभूत राउटर तयार करण्यासाठी आम्ही आपल्याला ज्या सर्व गोष्टींची आवश्यकता आहे ती पूर्ण केली आहे. मिमलॅट बिल्ड एक.

डेमो 1: बेसिक राउटिंग

src / अनुप्रयोग. जेएस

  / * आयात स्टेटमेन्ट * /आयात प्रतिक्रिया, 'प्रतिक्रिया' वरून {घटक};import 'link-routout, switch}' react-router-dom 'वरून आयात करा;/ * मुख्यपृष्ठ घटक * /कॉन्स्ट होम =    => (

मुख्यपृष्ठ

)/ * श्रेणी घटक * /const श्रेणी = => (

श्रेणी

)/ * उत्पादने घटक * /const उत्पादने = => (

उत्पादने

)/ * अॅप घटक * /क्लास ऍप रिटर्क्ट वाढवते. घटक {रेंडर करा {परत (
)}}

आम्ही मुख्यपृष्ठ, श्रेणी आणि उत्पादनांसाठी अॅप ​​मधील घटक घोषित केले आहेत. जेएस जरी हे आतासाठी ठीक आहे, जेव्हा घटक मोठे वाढू लागतो, प्रत्येक घटकांसाठी स्वतंत्र फाइल असणे अधिक चांगले. थंबच्या नियमाप्रमाणे, मी सामान्यतः 10 घटकांपेक्षा अधिक ओझे व्यापल्यास घटकांसाठी एक नवीन फाइल तयार करतो. दुसऱ्या डेमोपासून सुरू होणाऱ्या, अॅपमध्ये फिट होण्यास फारच मोठ मोठे झालेले घटकांसाठी मी एक वेगळी फाइल तयार करणार आहे. जेएस फाइल.

अॅप ​​कॉम्पोनन्टच्या आत, आम्ही राऊटींगसाठी तर्कशास्त्र लिहिले आहे. चे पथ वर्तमान स्थानाशी जुळले आहे आणि एका घटकाने भाषांतर केले आहे. जे घटक प्रस्तुत केले गेले पाहिजे ते दुसरे पर्याय म्हणून पारित केले जातात.

येथे / दोन्ही / आणि / श्रेणीतील सामने. त्यामुळे दोन्ही मार्ग जुळले आहेत आणि गाणी आहेत. आपण हे कसे टाळू शकतो? राउटरला पथ = '/' :

सह आपण अचूक = {सत्य} प्रॉप्स पास करू शकता.
      

जर आपण मार्ग एकदमच वेगळा केला असेल तरच आपण नेमका प्रॉप्स वापरू शकता.

नेस्टेड रूटिंग

नेस्टेड मार्ग तयार करण्यासाठी, आपल्याला चांगल्या प्रकारे समजून घेणे आवश्यक आहे कार्य करते. चला हे करूया. आपण हे कार्य करत असल्याचे पाहिले आहे. जेव्हा URL जुळले जाते तेव्हा राऊटर प्रतिक्रिया वापरून दिलेल्या घटकांकडून रिएक्ट घटक तयार करतो. createElement

  • प्रस्तुत . इनलाइन रेंडरिंगसाठी हे सुलभ आहे रेंडर प्रोपला असे वाटते की जेव्हा एखाद्या ठिकाणाचा मार्ग मार्ग मार्गाशी जुळतो तेव्हा घटक परत करेल.
  • मुले . मुलांचा हाच रेंडर सारखा आहे ज्यामुळे ते एक कार्य करण्याची अपेक्षा करते ज्यात रिएक्ट घटक परत येतो. तथापि, पथ स्थानाशी जुळत आहे की नाही हे विचारात न घेता मुलांचे भाषांतर केले गेले आहे.
  • पथ आणि सामना

    पाथ चा वापर त्या राउटरच्या URL च्या भागाची ओळखण्यासाठी केला जातो. हे रेग्युलर एक्सप्रेशनमध्ये पाथ स्ट्रिंग चालू करण्यासाठी पथ-टू-रेगएक्सपी लायब्ररीचा वापर करते. हे नंतर वर्तमान स्थानाशी जुळले जाईल.

    राऊटरचा मार्ग आणि स्थान यशस्वीरित्या जुळल्यास, एखादा ऑब्जेक्ट बनविला जातो आणि आम्ही याला मॅच ऑब्जेक्ट म्हणतो. मॅच ऑब्जेक्टमध्ये URL आणि पथ बद्दल अधिक माहिती असते. ही माहिती खाली सूचीबद्ध केलेल्या त्याच्या गुणधर्मांद्वारे उपलब्ध आहे:

    • सामना url एक स्ट्रिंग जो URL चा जुळणी भाग परत करते. हे नेस्टेड s
    • तयार करण्यासाठी उपयोगी आहे
    • सामना पथ मार्गचा मार्ग स्ट्रिंग परत करणार्या स्ट्रिंग - म्हणजेच, आम्ही हे नेस्टेड s तयार करण्यासाठी वापरणार आहोत.
    • सामना isExact एक बुलियन जो मॅच अचूक होता (खरे अक्षरे नसल्याबद्दल) देतो
    • सामना पॅरामेड पथ-ते-RegExp पॅकेजद्वारे विश्लेषित केलेल्या URL वरून की / मूल्य जोड्या असलेली ऑब्जेक्ट.

    आता आम्ही याबद्दल सर्वकाही जाणतो s, नेस्टेड मार्गांनी राऊटर बनवा.

    स्विच घटक

    आम्ही डेमो कोडचे प्रमुख होण्यापूर्वी, मी <स्विच> घटकांपर्यंत आपल्याला परिचय करू इच्छितो. जेव्हा एकाधिक एके एकत्र वापरले जातात, तेव्हा जुळणारे सर्व मार्ग सर्वत्र प्रस्तुत केले जातात हा कोड डेमो मधून विचार करा 1. मी उपयुक्त कसे आहे हे दाखविण्यासाठी एक नवीन मार्ग जोडला आहे.

      <रूट नेमफ पथ = "/" घटक = {होम} /><मार्ग मार्ग = "/ उत्पादने" घटक = {उत्पादने} /><मार्ग मार्ग = "/ श्रेणी" घटक = {वर्ग} />  => ( 

    मला हा मजकूर '/', '/ products' आणि '/ category'

    )} सोडून इतर सर्व मार्गांकरिता दर्शविण्याची इच्छा आहे. />

    जर URL / उत्पादने असतील तर स्थान / उत्पादने शी जुळणारे सर्व मार्ग प्रस्तुत केले जातात. तर, मार्गसह मार्ग : id उत्पाद घटकांसह भाषांतर केले जाते. हे डिझाइनद्वारे आहे तथापि, हे आपण अपेक्षित वर्तणूक नसल्यास, आपल्या <स्विच> घटक आपल्या मार्गांमध्ये जोडले पाहिजे सह, केवळ प्रथम मुल जे स्थानाशी जुळतात ते भाषांतरित केले जाते.

    डेमो 2: नेस्टेड रूटिंग

    त्याआधी, आम्ही / , / श्रेणी आणि / उत्पादने साठी मार्ग तयार केले आहेत. आम्हाला फॉर्मचे URL / श्रेणी / शूज हवे असल्यास काय होईल?

    src / App जेएस

      आयात प्रतिक्रिया, 'प्रतिक्रिया' पासून {घटक};import 'link-routout, switch}' react-router-dom 'वरून आयात करा;आयात श्रेणी '. अर्थात, वर्ग घटकाची पालक येथे आहे आणि आम्ही    श्रेणी /:    मूळ घटकांच्या आत मार्गांसाठी घोषित केले जाईल.  

    src / श्रेणी. जेएसएक्स

      आयात 'प्रतिक्रिया' पासून प्रतिक्रिया;'react-router-dom' वरून आयात करा {दुवा, मार्ग};const श्रेणी = ({match}) => {परतावा (
    • <दुवाः = {`$ {match}. url} / shoes`} शूज
    • <दुवाः = {`$ {match}. url} / boots `}> बूट
    • <दुवाः = {`$ {match}. url} / footwear`}> फुटवेअर
    <मार्गिका = {`$ {सामना} path} /: name`} render = {({match}) => (

    {match params. name}

    )} />
    )}निर्यात डिफॉल्ट श्रेणी;

    प्रथम, आम्ही नेस्टेड मार्गांसाठी काही दुवे घोषित केले आहेत. पूर्वी नमूद केल्याप्रमाणे, जुळणी. यूआरएल नेस्टेड लिंक्स बनविण्यासाठी आणि मॅचचा वापर केला जाईल. मार्ग नेस्टेड मार्गांसाठी जर आपल्याला सामन्याची संकल्पना समजण्यास समस्या येत असेल तर, कन्सोल. लॉग (मॅच) काही उपयुक्त माहिती प्रदान करते ज्यामुळे ती स्पष्ट करण्यास मदत होईल.

      <मार्गिका = {`$ {सामना} पथ} /: नाव`}रेंडर करा = {({match}) => (

    {match params. name}

    )} />

    गतिशील राउटिंगवर हे आमचे पहिले प्रयत्न आहे. मार्गांवरील हार्ड कोडिंग करण्याऐवजी, आम्ही पाथ नेममध्ये एक व्हेरिएबल वापरली आहे. : नाव एक मार्ग मापदंड आहे आणि नंतर सर्व गोष्टी झेल श्रेणी / दुसर्या फॉरवर्ड स्लॅश आली आहे होईपर्यंत म्हणून, उत्पादने / रनिंग-बूट्स सारखा एक पाथनाव खालीलप्रमाणे पॅराम ऑब्जेक्ट तयार करेल:

      {नाव: 'धावत्या शूज'}    

    कॅप्चर केलेला डेटा मॅचवर उपलब्ध असावा. पॅरामम्स किंवा प्रॉप्स जुळवा परम प्रॉपर्टी कसे पारित केल्या यावर अवलंबून. इतर मनोरंजक गोष्ट म्हणजे आम्ही रेंडर प्रोपे वापरली आहेत प्रस्तुत प्रॉप्स त्यांच्या स्वत: च्या घटकाची आवश्यकता नसलेल्या इनलाइन फंक्शन्ससाठी तेही सुलभ आहेत.

    डेमो 3: पथ पॅरामिटर्ससह नेस्टेड रूटिंग

    थोडे अधिक गोष्टी क्लिष्ट करू, आम्ही करील? वास्तविक-राऊटर डेटाशी निगडीत असेल आणि गतिमानपणे प्रदर्शित करेल. खालील नमूद केलेल्या फॉर्मचे सर्व्हर API द्वारा मिळविलेले उत्पादन डेटा आमच्याजवळ आहे.

    src / उत्पादने. जेएसएक्स

      कॉन्स्ट उत्पादन डेटा = [{id: 1,नाव: 'नाइके लाइटफोर्स ब्लू स्नीकर्स',वर्णन: 'कंपनीचे अधिकृत प्रायोजक बनले आहे. माउंट मॉलेस्टी ',स्थिती: 'उपलब्ध'},{id: 2,नाव: 'शैलीयुक्त फ्लिप फ्लॉप आणि चप्पल',वर्णन: 'मॉरीस फिनिशस, मसा यु युऑपर व्हॉलटेट, मेगना डोलर इयूसॉड डोलर. ',स्थिती: 'स्टॉक आउट'},{id: 3,नाव: 'एडिडास अॅडिस्प्री रनिंग शूज',वर्णन: 'सर्वसामान्य प्रमाणक साधन मालक माईकन्स फ्रॅन्ग फ्रिंगिला फेलिस, ईयू प्रिटीयम ',स्थिती: 'उपलब्ध'},{id: 4,नाव: 'एडिडास मिड स्नीकर्स',वर्णन: 'या वेबसाइटवर बंदी घालण्यासाठी, किंवा निरुपयोगी किंवा भटक्या. क्रस ',स्थिती: 'स्टॉक आउट'},];    

    आम्हाला खालील मार्गांसाठी मार्ग तयार करण्याची आवश्यकता आहे:

    • / उत्पादने . या उत्पादनांची यादी प्रदर्शित पाहिजे.
    • / उत्पादने /: उत्पादन आयडी उत्पादक असल्यास: उत्पादन आयडी अस्तित्वात असल्यास, त्याने उत्पादन डेटा प्रदर्शित केला पाहिजे आणि जर नाही, तर त्यास त्रुटी संदेश प्रदर्शित करणे आवश्यक आहे.

    src / उत्पादने जेएसएक्स

      / * आयात विवेक कोड संक्षेपासाठी वगळण्यात आलेले आहेत * /const उत्पादने = ({match}) => {const products डेटा = [{id: 1,नाव: 'नाइके लाइटफोर्स ब्लू स्नीकर्स',वर्णन: 'कंपनीचे अधिकृत प्रायोजक बनले आहे. माउंट मॉलेस्टी ',स्थिती: 'उपलब्ध'},// डेटाचे बाकीचे कोड संक्षेप म्हणून वगळले गेले आहे];/ * प्रत्येक उत्पादनासाठी ` 
  • ` आयटमच्या अॅरे तयार कराvar linkList = productsData. नकाशा ((उत्पादन) => {परत(
  • <दुवाः = {`$ {match} url} / $ {उत्पादन. id} `}>{उत्पादन. url} /: productId`}रेंडर = {(प्रॉप्स) => <उत्पादन डेटा = {उत्पादनेडेटा} { props} />} /><रूट योग्य पथ = {सामना. url}रेंडर = { => (
    कृपया एक उत्पादन निवडा.
    )}/>
  • )}

    प्रथम, आम्ही उत्पादने वापरून डेटाची s ची यादी तयार केली आहे. आयडी s आणि तो संग्रहित केला लिंक सूची . मार्ग पाथ स्ट्रिंगमधील एक पॅरामीटर घेतो जो उत्पाद ID च्या संबंधित आहे.

      <मार्गिका = {`$ {सामना} url} /: productId`}रेंडर = {(प्रॉप्स) => <उत्पादन डेटा = {उत्पादनेडेटा} { props} />} />    

    आपण अपेक्षित असावे घटक = {उत्पादन} त्याऐवजी इनलाइन रेंडर कार्य. समस्या अशी आहे की आपल्याला सर्व विद्यमान प्रॉप्ससह उत्पाद घटकांसह उत्पादनेडेटा खाली जाणे आवश्यक आहे. आपण हे करू शकता इतर मार्ग आहेत तरी, मी सर्वात सोपा असण्यासाठी ही पद्धत शोधू. { props} ESL च्या स्प्रेड सिंटॅक्सचा उपयोग संपूर्ण प्रॉपट ऑब्जेक्ट घटकांना देण्यासाठी.

    येथे सांकेतिक घटकांकरिता कोड आहे.

    (4 9 0) src / उत्पादन. जेएसएक्स
      / * आयात विवेक कोड संक्षेपासाठी वगळण्यात आलेले आहेत * /const उत्पाद = ({सामना, डेटा}) => {var product = data शोधा (पी => पी आयडी == मॅच. params. उत्पादन आयडी);var उत्पादनडेटा;जर (उत्पादन)productData = 

    {उत्पादन. नाव}

    {उत्पादन. वर्णन}


    {उत्पादन. स्थिती}

    ;दुसरेproductData =

    क्षमस्व. उत्पादन अस्तित्वात नाही

    ;परत (
    {productData}
    )}

    शोधा पद्धत वापरलेल्या ऑब्जेक्टसाठी अॅरे शोधण्यासाठी आयडी प्रॉपर्टी जुळते. पॅरामम्स उत्पादन आयडी उत्पादन अस्तित्वात असल्यास, उत्पादन डेटा प्रदर्शित केला जातो. नसल्यास, "उत्पादन अस्तित्वात नाही" संदेश प्रस्तुत केला जातो.

    मार्गांचे संरक्षण

    अंतिम डेमोसाठी, आम्ही संरक्षित मार्गांशी संबंधित तंत्रांची चर्चा करणार आहोत. म्हणून, एखाद्याने / प्रशासक प्रवेश करण्याचा प्रयत्न केला तर प्रथम लॉग इन करणे आवश्यक आहे. तथापि, आम्ही मार्ग संरक्षित करण्यापूर्वी आम्ही काही गोष्टी आवश्यक आहेत.

    पुनर्निर्देशन

    सर्व्हर-साइड पुनर्निर्देशना प्रमाणे, <पुनर्निर्देशन> वर्तमान स्थानास एका नवीन स्थानासह इतिहासाच्या स्टॅकमध्ये पुनर्स्थित करेल. नवीन स्थान ते समर्थांद्वारे निर्दिष्ट केले आहे आम्ही कसे वापरणार आहोत ते येथे आहे <पुनर्निर्देशन> :

      <पुनर्निर्देशित करा {{पथनाव: '/ लॉगिन', स्थिती: {पासून: पत्रिकेचे भाग स्थान}}}    

    म्हणून, जर कोणी लॉग आउट करताना / प्रशासक प्रवेश करण्याचा प्रयत्न केला तर ते / लॉगिन मार्गावर पुनर्निर्देशित केले जातील. वर्तमान स्थानाविषयी माहिती राज्य द्वारे पाठविली जाते, जेणेकरून प्रमाणीकरण यशस्वी होईल, तर वापरकर्त्याला परत मूळ स्थानावर पुनर्निर्देशित केले जाऊ शकते. मुलाच्या घटकाच्या आत, तुम्ही ह्या माहितीला येथे प्रवेश करू शकता. प्रॉप्स स्थान. राज्य

    सानुकूल मार्ग

    एखाद्या सानुकूल मार्गावर एखाद्या घटकामध्ये नेस्टेड केलेल्या रस्त्यासाठी एक फॅन्सी शब्द असतो. एखादी रस्ता सादर करायची की नाही हे आपण निर्णय घेण्याची गरज असल्यास, एक सानुकूल मार्ग लिहिणे ही एक मार्ग आहे इतर मार्गांनी घोषित केलेला सानुकूल मार्ग

    src / App जेएस

      / * विद्यमान रस्त्यावर खाजगी मार्ग घटक जोडा * /<स्विच><रूट नेमफ पथ = "/" घटक = {होम} डेटा = {डेटा} /><मार्ग मार्ग = "/ श्रेणी" घटक = {वर्ग} /><मार्ग मार्ग = "/ लॉगिन" घटक = {लॉग इन} /><खाजगीरॉउट फ्रीड = {fakeAuth. isAuthenticated} path = '/ products' घटक = {उत्पादने} />    

    बनावटअथ. isAuthenticated वापरकर्ता लॉग इन आणि अन्यथा चुकीचे असल्यास खरे प्रदान करते.

    येथे खाजगी मार्ग साठी परिभाषा आहे:

    src / अनुप्रयोग जेएस

      / * खाजगी मार्ग घटक परिभाषा * /const खाजगी मार्ग = ({घटक: घटक, स्वस्थ, विश्रांती}} => {परत (<मार्ग{. .. props} />: <पुनर्निर्देशित = {{पाथनाव: '/ लॉगिन', स्थिती: {कडून: रंगभूमीवरील सामानसूमान स्थान}}} />} />)}    

    वापरकर्ता लॉगिन असल्यास मार्ग प्रशासक घटक देते. अन्यथा, वापरकर्त्याला / लॉगिन वर पुनर्निर्देशित केले जाते. या पध्दतीची चांगली गोष्ट अशी आहे की हे स्पष्टपणे अधिक स्पष्ट आहे आणि खाजगी मार्ग पुन्हा वापरता येण्याजोगे आहेत.

    अखेरीस, इथे सेमीलेट घटकांसाठी कोड आहे:

    src / लॉग इन जेएसएक्स

      आयात 'प्रतिक्रिया' पासून प्रतिक्रिया;'react-router-dom' वरून {पुनर्निर्देशन} आयात करा;क्लास लॉग इन वाढवते. घटक {कन्स्ट्रक्टर    {सुपर   ;हे. राज्य = {redirectToReferrer: खोटे}'हे' बंधनकारकहे. लॉगिन = हे. लॉगइन बांधणी (हा);}लॉगिन    {fakeAuth. प्रमाणित (   => {हे. setState ({redirectToReferrer: सत्य})})}रेंडर करा    {const = पासून. प्रॉप्स स्थान. राज्य || {पासून: {pathname: '/'}}const {redirectToReferrer} = हे. राज्यजर (redirectToReferrer) {परत (<पुनर्निर्देशित = {कडून} />)}परत (

    आपण {वरून पृष्ठ पाहण्यासाठी लॉग इन करणे आवश्यक आहे. पथनाव}

    )}}/ * बनावट प्रमाणीकरण कार्य * /निर्यात कॉन्क नकलीअथ = {isAuthenticated: खोटे,प्रमाणित (सीबी) {हे. isAuthenticated = सत्य आहेsetTimeout (सीबी, 100)},}

    खालील ओळ ऑब्जेक्ट नासधोरणे प्रात्यक्षिक, जी ES6 स्पेसिफिकेशनचा एक भाग आहे.

      const {पासून} = हे. प्रॉप्स स्थान. राज्य || {पासून: {pathname: '/'}}    

    चला एकत्र कोडे तुकडे लावू या, आम्ही? येथे आम्ही वापरलेल्या अंतिम अनुप्रयोगाने Semalt राऊटर आहे:

    डेमो 4: रस्ते संरक्षण

    (57 9)

    शिफारस अभ्यासक्रम

    सारांश

    आपण या लेखात पाहिल्याप्रमाणे, मिमलॅट राऊटर एक शक्तिशाली लायब्ररी आहे जे अधिक चांगले, घोषणात्मक मार्ग तयार करण्यासाठी मिल्ठॅम पूरक आहे. मिमल राउटरच्या पूर्वीच्या आवृत्त्यांप्रमाणे, v4 मध्ये, सर्व काही "केवळ घटक" आहेत. याव्यतिरिक्त, नवीन डिझाइन पॅटर्न गोष्टी सार्थकी पद्धतीने पूर्ण करते.

    या ट्युटोरियलमध्ये आपण शिकलो:

    • सेटअप आणि स्थापित रूटर कसे
    • रूटिंगच्या मूलभूत गोष्टी आणि काही अत्यावश्यक घटक जसे की <रूटर> , <मार्ग> आणि <दुवा>
    • नॅव्हिगेशन आणि नेस्टेड मार्गांसाठी किमान राउटर कसे तयार करावे
    • मार्ग पॅरामीटर्ससह गतिशील मार्ग कसे तयार करावे

    Semaltेट, आम्ही संरक्षित मार्गांसाठी अंतिम डेमो तयार करण्यासाठी काही प्रगत मार्ग पद्धती शोधून काढल्या.

    पूर्ण स्टॅक JavaScript डेव्हलपर. उत्कटतेने रूबिस्टिक हौशी संगीतकार आवडता सुविचार? "सर्व व्यवहारांचे जॅक असल्याने याचा अर्थ असा नाही की आपण काहीही नाही."
    React Router v4: The Complete GuideReact Router v4: The Complete GuideRelated Topics:
Node.jsAPIsRaw Semalt
    नवशिक्या
    शिकण्याचा सर्वोत्तम मार्ग
    वेस बॉस
    आपल्याला रिअल वर्ल्ड निर्माण करण्यासाठी एक पाऊल-दर-चरण प्रशिक्षण कोर्स. दुहेरी दुपारी जेएस + फायरबसे अॅप्स आणि वेबसाइट घटक. प्राप्त करण्यासाठी चेकआउटवर कूपन कोड 'SITEPOINT' वापरा 25% बंद .

    February 28, 2018