版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Router使用及原Routerreact-router資react-react-react-用)或react-router-native(在rn中使用)。react-dom和actouer-nae都依賴ectoute,所以在安裝時,ectroute也會自動安裝,創(chuàng)建eb安npmnpminstall--savereact-router-創(chuàng)建importReact,{Component}from"react";import{BrowserRouter,Link,Route}fromimportHomePagefrom"./HomePage";importUserPagefromexportdefaultclassRouterPageextendsComponent{{return<Linkto="/">首頁<Linkto="/user">用戶中心{/*根路由要添加exact,實現(xiàn)精確匹配<Route<Routeexactpath="/"{HomePage}<Routepath="/user"{UserPage}}}<Route<Routepath="/search/:id"component={Search}添加導(dǎo)航<Link<Linkto={"/search/searchId}>搜索創(chuàng)建Search組件并獲取參數(shù)importimportReact,{Component}from"react";import{BrowserRouter,Link,Route}fromimportHomePagefromimportUserPagefromfunctionSearch({match,history,location{const{id}=match.params;return(<h1>Search:}exportdefaultclassRouterPageextendsComponent{render()constsearchId="1234";return(<Linkto="/">首頁<Linkto="/user">用戶中心<Linkto={"/search/searchId}>索
{/*根路由要添加exact,實現(xiàn)精確匹配<Routeexactpath="/"{HomePage}<Route<Routepath="/user"{UserPage}<Routepath="/search/:id"{Search}}}嵌functionfunction{return}functionSearch({match,history,location{const{id}=match.params;return(<h1>Search:<Linkto="/search/add">新增<Linkto={"/search/detail/id}><Routepath="/search/add"=><h1>add</h1>}<Routepath={"/search/detail/:"+id}component={Detail}/>}404{{/*添加Switch表示僅匹配一個{/*根路由要添加exact,實現(xiàn)精確匹配<Routeexactpath="/"component={HomePage}<Routepath="/user"component={UserPage}<Routepath="/search/:id"<Routecomponent={()=><h1>404</h1>}importReact,{Component}from"react";import{Route,Redirect}from"react-router-import{connect}from"react-classPrivateRouteextends{render()const{path,component,isLogin}=if(isLogin)return<Routepath={path}{component}}{returnpathname:"/login",state:{redirect:path},}}}}exportdefaultconnect(state=>創(chuàng)建importReact,{Component}from"react";import{Redirect}from"react-router-dom";import{connect}from"react-redux";classLoginPageextends{render()const{isLogin,login,location}=const{redirect="/"}=||if(isLogin)return<Redirectto={redirect}}return<button}}exportdefaultexportdefaultconnect(state=>{login:()=>type:<Route<Routeexactpath="/login"{LoginPage}<PrivateRoutepath="/user"importimport{createStore,combineReducers}constinitalUserInfo{isLogin:user:name: functionloginReducer(state=...initalUserInfo},action)switch{casereturn{...initalUserInfo};case"loginSuccess":return{...state,isLogin:true};case"loginFailure":return{...state,isLogin:true};return{...state}}conststorecreateStore(combineReducers({user:loginReducer,exportdefaultimportReactfrom"react";importReactDOMfrom"react-dom";import"./index.css";importAppfromimport{Provider}from"react-redux";importstorefrom"./store";<Provider<App importimportReact,{Component}from"react";import{connect}from"react-redux";classUserPageextends{render()const{logout}=ps;return(<buttononClick={logout}>退出登}}}exportdefaultconnect(state=>{logout:()=>type:與HashRouterHashRouter最簡單,不需要服務(wù)?端渲染,靠瀏覽?的#的來區(qū)分path就可以,BrowserRouter需要服務(wù)?端對不BrowserRouter使用HTML5歷史API(pushState,receState和popstate),讓頁面的UI同步HsRuter不支持ocaony和ocaonsae,動態(tài)路由跳轉(zhuǎn)需要通過?傳遞參數(shù)。Hashhistory不需要服務(wù)?任何配置就可以運行,如果你剛剛,那就使用它吧。但是我們不推薦在實際線上環(huán)境中用到它,因為每一個web應(yīng)用都應(yīng)該渴望使用拓BrowserRouter、Route、實現(xiàn)創(chuàng)建測試頁面importReact,{Component}from"react";import{BrowserRouter,Link,Route}fromimportHomePagefromimportUserPagefromexportdefaultclassMyRouterPageextendsComponent{{(<Linkto="/">首頁<Linkto="/user">用戶中心<Route<Routepath="/"exact{HomePage}<Routepath="/user"{UserPage}}}import{createBrowserHistory}fromconstRouterContext=React.createContext();classBrowserRouterextendsComponent{{this.history=this.state=location:this.unlisten=this.history.listen(location=>{this.setState({location}componentWillUnmount()if(this.unlisten)}{returnchildren={ps.children||null}history:this.history,location:this.state.location}實現(xiàn)exportexportfunctionRoute(props)constctx=useContext(RouterContext);const{path,component:Cmp}=props;const{location}=ctx;letmatch=path===location.pathname;returnmatch?<Cmp/>:null;}實現(xiàn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)村土地流轉(zhuǎn)價格協(xié)商及合同簽訂服務(wù)合同
- 二零二五年度農(nóng)業(yè)農(nóng)機廢棄物處理與資源化利用合同3篇
- 二零二五年度股東間人力資源共享合作協(xié)議書3篇
- 二零二五年度現(xiàn)代農(nóng)業(yè)農(nóng)機推廣與應(yīng)用合同2篇
- 二零二五年度老舊小區(qū)改造項目物業(yè)用房移交合同3篇
- 2025農(nóng)村房屋買賣及配套設(shè)施保險合同2篇
- 二零二五年度豬肉產(chǎn)品研發(fā)與市場推廣合同3篇
- 二零二五年度房地產(chǎn)項目三方合作協(xié)議書3篇
- 二零二五年度全新和公司簽訂的全新智慧城市規(guī)劃設(shè)計勞動合同3篇
- 二零二五年度健康養(yǎng)生兼職講師服務(wù)協(xié)議3篇
- DB52T 1776.1-2023 耕地質(zhì)量等別評價 第1部分:評價規(guī)范
- 社工個人工作述職報告
- 《人力資源管理》大學(xué)期末測試題庫500題(含答案)
- 加盟店鋪轉(zhuǎn)手合同
- 小紅書食用農(nóng)產(chǎn)品承諾書示例
- CQI-23模塑系統(tǒng)評估審核表-中英文
- 《顱內(nèi)壓增高的臨床表現(xiàn)》教學(xué)課件
- 2024-2025學(xué)年北師大版九年級數(shù)學(xué)上冊期中培優(yōu)試題
- 《建筑工程設(shè)計文件編制深度規(guī)定》(2022年版)
- 【教案】Unit+4+My+Favourite+Subject大單元整體教學(xué)設(shè)計人教版英語七年級上冊
- 七年級體育《排球》教案
評論
0/150
提交評論