您好,登錄后才能下訂單哦!
這篇文章主要介紹了模塊化react-router如何配置,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
react-router模塊化配置
因?yàn)楣镜男枰罱みM(jìn)了react坑,一直在挖坑填坑,在路由這一塊折騰得不行。
直接進(jìn)入主題,配置react-router模塊化
1.先下載react-router-dom
npm install react-router-dom --save
2.在相應(yīng)的文件引入react-router-dom相應(yīng)的模塊
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
3.在src子創(chuàng)建一個(gè)module目錄,接著在module目錄在創(chuàng)建一個(gè)router.js文件,用來配置路由。
//router.js import Index from '../components/Index' import New from '../components/New' import NewList from '../components/NewList' import NewContent from '../components/NewContent' const routes = [ { path:"/", component:Index, exact:true }, { path:"/new", component:New, routes:[ { path:"/new/", component:NewContent }, { path:"/new/newList", component:NewList } ] }, ] export default routes
4.在app.js根目錄添加相應(yīng)的跳轉(zhuǎn)路徑。
//app.js import React from 'react'; import './App.css'; import { BrowserRouter as Router, Route, Link } from "react-router-dom"; import router from "./modules/routers" function App() { return ( <Router> <nav className="nav"> <ul> <li> <Link to="/">首頁(yè)</Link> </li> <li> <Link to="/new">新聞</Link> </li> </ul> </nav> { router.map((router,index)=>{ if(router.exact){ return <Route exact key={index} path={router.path} render = { props =>( <router.component {...props} routes = {router.routes}/> ) } /> }else{ return <Route key={index} path={router.path} render = { props =>( <router.component {...props} routes = {router.routes} /> ) } /> } }) } </Router> ); } export default App;
注意點(diǎn):嵌套路由千萬(wàn)不要在<Route/>身上加上component={xxx.xxx},否則在子路由頁(yè)碼就接受不到父路由傳遞給子路由的數(shù)據(jù),重要的事情說三篇
注意點(diǎn):嵌套路由千萬(wàn)不要在<Route/>身上加上component={xxx.xxx},否則在子路由頁(yè)碼就接受不到父路由傳遞給子路由的數(shù)據(jù),重要的事情說三篇
注意點(diǎn):嵌套路由千萬(wàn)不要在<Route/>身上加上component={xxx.xxx},否則在子路由頁(yè)碼就接受不到父路由傳遞給子路由的數(shù)據(jù),重要的事情說三篇
解析一下,<Route/>里面的render,這是官方給出的一種固定寫法,為了解決父路由傳遞數(shù)據(jù)給子路由接受不到的問題。render是一個(gè)對(duì)象,里面是一個(gè)箭頭函數(shù),箭頭函數(shù)放回<router.component {...props} routes = {router.routes} />一個(gè)標(biāo)簽,router.component的router對(duì)于的是你map傳進(jìn)來的那個(gè)形參,傳啥寫啥;component 是配置文件對(duì)應(yīng)的component ,routes 是傳給子路由的數(shù)據(jù)、(子路由通過this.props.routes 接收)
5.在有子路由的頁(yè)碼配置跳轉(zhuǎn)
import React ,{Component} from 'react'; import { BrowserRouter as Router, Route, Link } from "react-router-dom"; class New extends Component{ render(){ return( <div className="box"> <div className="left"> <ul> <li> <Link to="/new">New</Link> </li> <li> <Link to="/new/newList">NewList</Link> </li> </ul> </div> <div className="right"> { this.props.routes.map((item,index)=>{ return <Route key={index} exact path={item.path} component={item.component}></Route> }) } </div> </div> ) } } export default New
最后的結(jié)果為:
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“模塊化react-router如何配置”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。