react实现同页面三级跳转路由布局


Posted in Javascript onSeptember 26, 2019

本文实例为大家分享了react实现同页面三级跳转路由布局的具体代码,供大家参考,具体内容如下

react实现同页面三级跳转路由布局

 一级路由+布局组件:

//嵌套路由小案例 布局页面一级路由
import React from 'react'
import {BrowserRouter as Router, Route, Link} from 'react-router-dom' //引入路由要用的组件
import Index from './Index' //二级路由 首页
import Video from './Video' // 二级路由 视频
import Workplace from './Workplace' //二级路由 职场
import './Router.css'
 
//假设是后端获取的动态路由
function AppRouter(){
  let routeConfig = [
    {path:'/',title:'博客首页',exact:true,component:Index},
    {path:'/video',title:'视频教程',exact:false,component:Video},
    {path:'/workplace',title:'职场技能',exact:false,component:Workplace},
  ]
  return(
    <Router>
      <div className='mainDiv'>
        {/* 左侧导航部分 */}
        <div className='leftNav'>
          <h3>一级导航</h3>
          <ul>
            {/* 渲染动态路由 */}
            {
              routeConfig.map((item,index)=>{
                return (
                  <li key={index}>
                    <Link to={item.path}>{item.title}</Link>
                  </li>
                )
              })
            }
          </ul>
        </div>
        {/* 右侧显示部分 */}
        <div className='rightMain'>
          {
           routeConfig.map((item,index)=>{
            return (
              <Route key={index} exact={item.exact} path={item.path} component={item.component} />
            )
          }) 
          }
        </div>
      </div>
    </Router>
  )
}
 
export default AppRouter

布局css:

body{
  padding: 0px;
  margin: 0px;
}
 
.mainDiv{
  display: flex;
  width: 100%;
}
.leftNav{
  width: 16%;
  background-color: #c0c0c0;
  color:#333;
  font-size:24px;
  height: 1000px;
  padding: 20px;
}
.rightMain{
  width: 84%;
  height:1000px;
  background-color: #fff;
  font-size:20px;
}

二级路由 首页组件

//首页 二级路由
 
import React,{Component} from 'react'
 
class Index extends Component {
  constructor(props) {
    super(props);
    this.state = { }
  }
  render() { 
    return ( 
    <div>
      <h2>我是首页</h2>
    </div> 
    );
  }
}
 
export default Index;

二级路由 视频组件

//视频页面 二级路由
 
import React from 'react'
import { Route, Link} from 'react-router-dom'
import ReactPage from './video/ReactPage'
import Flutter from './video/Flutter'
import Vue from './video/Vue'
import './Video.css'
 
function Video(){
  return(
    <div>
      <div className='topNav'>
        <ul>
          <li><Link to='/video/reactpage/'>React教程</Link></li>
          <li><Link to='/video/Flutter/'>Flutter教程</Link></li>
          <li><Link to='/video/Vue/'>Vue教程</Link></li>
        </ul>
      </div>
      <div className='videoContent'>
        <div>
          <h3>视频教程</h3>
          <Route path='/video/reactpage/' component={ReactPage} />
          <Route path='/video/Flutter/' component={Flutter} />
          <Route path='/video/Vue/' component={Vue} />
        </div>
      </div>
    </div>  
  )
}
 
export default Video

 三级路由 视频 子页面

//三级路由
import React from 'react'
 
function Flutter(){
  return (
    <h2>
      我是Flutter
    </h2>
  )
}
 
export default Flutter
//三级路由
import React from 'react'
 
function ReactPage(){
  return (
    <h2>
      我是react
    </h2>
  )
}
 
export default ReactPage
..

其余二级三级页面类似

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery插件fancybox无法在弹出层使用左右键的解决办法
Dec 25 Javascript
jquery将一个表单序列化为一个对象的方法
Jan 03 Javascript
jQuery select表单提交省市区城市三级联动核心代码
Jun 09 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
Jul 17 Javascript
JavaScript中return false的用法
Mar 12 Javascript
js+html5实现canvas绘制椭圆形图案的方法
May 21 Javascript
简单实现JavaScript图片切换效果
Nov 28 Javascript
setTimeout函数的神奇使用
Feb 26 Javascript
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
vue filter 完美时间日期格式的代码
Aug 14 Javascript
vue Tab切换以及缓存页面处理的几种方式
Nov 05 Javascript
js验证密码强度解析
Mar 18 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
Sep 26 #Javascript
小程序调用微信支付的方法
Sep 26 #Javascript
细说webpack6 Babel的使用详解
Sep 26 #Javascript
微信小程序实现拖拽功能
Sep 26 #Javascript
vue用BMap百度地图实现即时搜索功能
Sep 26 #Javascript
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 #Javascript
微信小程序点击列表跳转到对应详情页过程解析
Sep 26 #Javascript
You might like
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
php win下Socket方式发邮件类
2009/08/21 PHP
php Session无效分析资料整理
2016/11/29 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
详解vuex状态管理模式
2018/11/01 Javascript
Vue的Options用法说明
2020/08/14 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
python基础教程之五种数据类型详解
2017/01/12 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
python将数据插入数据库的代码分享
2020/08/16 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
送给他或她的礼物:FUN.com
2018/08/17 全球购物
超市业务员岗位职责
2013/12/05 职场文书
2014年班主任自我评价范文
2014/04/23 职场文书
外贸业务员求职信
2014/06/16 职场文书
利用js实现简单开关灯代码
2021/11/23 Javascript
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
java版 简单三子棋游戏
2022/05/04 Java/Android