¸üÐÂʱ¼ä:2022Äê06ÔÂ10ÈÕ11ʱ45·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:
ÏÖ´úµÄǰ¶ËÓ¦Óôó¶à¶¼ÊÇ SPA£¨µ¥Ò³Ó¦ÓóÌÐò£©£¬Ò²¾ÍÊÇÖ»ÓÐÒ»¸ö HTML Ò³ÃæµÄÓ¦ÓóÌÐò¡£ÒòΪËüµÄÓû§ÌåÑé¸üºÃ¡¢¶Ô·þÎñÆ÷µÄѹÁ¦¸üС£¬ËùÒÔ¸üÊÜ»¶Ó¡£ÎªÁËÓÐЧµÄʹÓõ¥¸öÒ³ÃæÀ´¹ÜÀíÔÀ´¶àÒ³ÃæµÄ¹¦ÄÜ£¬Ç°¶Ë·ÓÉÓ¦Ô˶øÉú¡£
ǰ¶Ë·ÓɵŦÄÜ¿ÉÒÔÈÃÓû§´ÓÒ»¸öÊÓͼ£¨Ò³Ã棩µ¼º½µ½ÁíÒ»¸öÊÓͼ£¨Ò³Ã棩£¬Ç°¶Ë·ÓÉÊÇÒ»Ì×Ó³É乿Ôò£¬ÔÚReactÖÐÊÇ URL·¾¶ Óë ×é¼þ µÄ¶ÔÓ¦¹ØÏµÊ¹ÓÃReact·Óɼòµ¥À´Ëµ£¬¾ÍÊÇÅäÖ÷¾¶ºÍ×é¼þ£¨Åä¶Ô£©¡£
·ÓɵĻù±¾Ê¹ÓÃ
1. °²×°£ºyarn add react-router-dom
2. µ¼Èë·ÓɵÄÈý¸öºËÐÄ×é¼þ£ºRouter / Route / Link
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
<Router> <div className="App"> // … Ê¡ÂÔÒ³ÃæÄÚÈÝ </div> </Router>
<Link to="/first">Ò³ÃæÒ»</Link>
5. ʹÓà Route ×é¼þÅäÖ÷ÓɹæÔòºÍҪչʾµÄ×é¼þ£¨Â·Óɳö¿Ú£©
const First = () => <p>Ò³ÃæÒ»µÄÒ³ÃæÄÚÈÝ</p>
<Router>
<div className="App">
<Link to="/first">Ò³ÃæÒ»</Link>
<Route path="/first" component={First}></Route>
</div>
</Router>
³£ÓÃ×é¼þ
Router ×é¼þ£º°ü¹üÕû¸öÓ¦Óã¬Ò»¸ö React Ó¦ÓÃÖ»ÐèҪʹÓÃÒ»´Î
Á½ÖÖ³£Óà Router£ºHashRouter ºÍ BrowserRouter
HashRouter£ºÊ¹Óà URL µÄ¹þϣֵʵÏÖ£¨localhost:3000/#/first£©
£¨ÍƼö£©BrowserRouter£ºÊ¹Óà H5 µÄ history API ʵÏÖ£¨localhost:3000/first£©
Link ×é¼þ£ºÓÃÓÚÖ¸¶¨µ¼º½Á´½Ó£¨a ±êÇ©£©// toÊôÐÔ£ºä¯ÀÀÆ÷µØÖ·À¸ÖеÄpathname£¨location.pathname£© <Link to="/first">Ò³ÃæÒ»</Link>
Route ×é¼þ£ºÖ¸¶¨Â·ÓÉչʾ×é¼þÏà¹ØÐÅÏ¢
// pathÊôÐÔ£ºÂ·ÓɹæÔò
// componentÊôÐÔ£ºÕ¹Ê¾µÄ×é¼þ
// Route×é¼þдÔÚÄÄ£¬äÖȾ³öÀ´µÄ×é¼þ¾ÍչʾÔÚÄÄ
<Route path="/first" component={First}></Route>
1. µã»÷ Link ×é¼þ£¨a±êÇ©£©£¬ÐÞ¸ÄÁËä¯ÀÀÆ÷µØÖ·À¸ÖÐµÄ url ¡£
2. React ·ÓɼàÌýµ½µØÖ·À¸ url µÄ±ä»¯¡£
3. React ·ÓÉÄÚ²¿±éÀúËùÓÐ Route ×é¼þ£¬Ê¹Ó÷ÓɹæÔò£¨ path £©Óë pathname ½øÐÐÆ¥Åä¡£
4. µ±Â·ÓɹæÔò£¨path£©Äܹ»Æ¥Å䵨ַÀ¸ÖÐµÄ pathname ʱ£¬¾Íչʾ¸Ã Route ×é¼þµÄÄÚÈÝ¡£

±±¾©Ð£Çø