模块化react-router配置方法详解
react-router模块化配置
因为公司的需要最近踏进了react坑,一直在挖坑填坑,在路由这一块折腾得不行。
直接进入主题,配置react-router模块化
1.先下载react-router-dom
npm install react-router-dom --save
2.在相应的文件引入react-router-dom相应的模块
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
3.在src子创建一个module目录,接着在module目录在创建一个router.js文件,用来配置路由。
//router.js import Index from '../ponents/Index' import New from '../ponents/New' import NewList from '../ponents/NewList' import NewContent from '../ponents/NewContent' const routes = [ { path:"/", ponent:Index, exact:true }, { path:"/new", ponent:New, routes:[ { path:"/new/", ponent:NewContent }, { path:"/new/newList", ponent:NewList } ] }, ] export default routes
4.在app.js根目录添加相应的跳转路径。
//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="/">首页</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.ponent {...props} routes = {router.routes}/> ) } /> }else{ return <Route key={index} path={router.path} render = { props =>( <router.ponent {...props} routes = {router.routes} /> ) } /> } }) } </Router> ); } export default App;
注意点嵌套路由千万不要在<Route/>身上加上ponent={xxx.xxx},否则在子路由页码就接受不到父路由传递给子路由的数据,重要的事情说三篇
注意点嵌套路由千万不要在<Route/>身上加上ponent={xxx.xxx},否则在子路由页码就接受不到父路由传递给子路由的数据,重要的事情说三篇
注意点嵌套路由千万不要在<Route/>身上加上ponent={xxx.xxx},否则在子路由页码就接受不到父路由传递给子路由的数据,重要的事情说三篇
解析一下,<Route/>里面的render,这是官方给出的一种固定写法,为了解决父路由传递数据给子路由接受不到的问题。render是一个对象,里面是一个箭头函数,箭头函数放回<router.ponent {...props} routes = {router.routes} />一个标签,router.ponent的router对于的是你map传进来的那个形参,传啥写啥;ponent 是配置文件对应的ponent ,routes 是传给子路由的数据、(子路由通过this.props.routes 接收)
5.在有子路由的页码配置跳转
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} ponent={item.ponent}></Route> }) } </div> </div> ) } } export default New
的结果为
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程