国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

深入理解react-router@4.0 使用和源碼解析

2024-05-06 15:16:52
字體:
來源:轉載
供稿:網友

如果你已經是一個正在開發中的react應用,想要引入更好的管理路由功能。那么,react-router是你最好的選擇~

react-router版本現今已經到4.0.0了,而上一個穩定版本還是2.8.1。相信我,如果你的項目中已經在使用react-router之前的版本,那一定要慎重的更新,因為新的版本是一次非常大的改動,如果你要更新,工作量并不小。

這篇文章不討論版本的變化,只是討論一下React-router4.0的用法和源碼。

源碼在這里:https://github.com/ReactTraining/react-router

1.準備

只需要在你的react app中引入一個包yarn add react-router-dom@next

注:react-router-dom是對react-router的作了一些小升級的庫,代碼基于react-router

2.使用

我們直接上例子:

import React from 'react'import {BrowserRouter as Router,Route,Link} from 'react-router-dom'const Basic = () => ( <Router> <div>  <ul>  <li><Link to="/">Home</Link></li>  <li><Link to="/page1">Page1</Link></li>  <li><Link to="/page2">Page2</Link></li>  </ul>  <hr/>  <Route exact path="/" component={Home}/>  <Route path="/page1" component={Page1}/>  <Route path="/page2" component={Page2}/> </div> </Router>)

跟之前的版本一樣,Router這個組件還是一個容器,但是它的角色變了,4.0的Router下面可以放任意標簽了,這意味著使用方式的轉變,它更像redux中的provider了。通過上面的例子相信你也可以看到具體的變化。而真正的路由通過Route來定義。Link標簽目前看來也沒什么變化,依然可以理解為a標簽,點擊會改變瀏覽器Url的hash值,通過Route標簽來捕獲這個url并返回component屬性中定義的組件,你可能注意到在為"/"寫的路由中有一個exact關鍵字,這個關鍵字是將"/"做唯一匹配,否則"/"和"/xxx"都會匹配到path為"/"的路由,制定exact后,"/page1"就不會再匹配到"/"了。如果你不懂,動手試一下~

通過Route路由的組件,可以拿到一個match參數,這個參數是一個對象,其中包含幾個數據:

    isExact:剛才已經說過這個關鍵字,表示是為作全等匹配 params:path中包含的一些額外數據 path:Route組件path屬性的值 url:實際url的hash值

我們來實現一下剛才的Page2組件:

const Page2 = ({ match }) => ( <div> <h2>Page2</h2> <ul>  <li>  <Link to={`${match.url}/branch1`}>   branch1  </Link>  </li>  <li>  <Link to={`${match.url}/branch2`}>   branch2  </Link>  </li>  <li>  <Link to={`${match.url}/branch3`}>   branch3  </Link>  </li> </ul> <Route path={`${match.url}/:branchId`} component={Branch} /> <Route exact path={match.url} render={() => (  <h3>Default Information</h3> )} /> </div>)const Branch = ({ match }) => { console.log(match); return ( <div>  <h3>{match.params.branchId}</h3> </div> )}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 长宁区| 孙吴县| 上林县| 长汀县| 夏津县| 高要市| 新源县| 尼勒克县| 黄骅市| 平乐县| 万宁市| 射洪县| 苍梧县| 凤阳县| 黔南| 安宁市| 珠海市| 凤阳县| 合阳县| 湛江市| 吐鲁番市| 齐河县| 丰顺县| 白玉县| 尖扎县| 汉寿县| 加查县| 马龙县| 西林县| 澎湖县| 读书| 佛坪县| 安陆市| 宜黄县| 漳州市| 杭锦后旗| 珠海市| 卢氏县| 工布江达县| 鹿邑县| 沾益县|