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 相关文章推荐
一个选择最快的服务器转向代码
Apr 27 Javascript
清空上传控件input file的值
Jul 03 Javascript
jQuery代码优化 选择符篇
Nov 01 Javascript
JS注释所产生的bug 即使注释也会执行
Nov 19 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
Aug 02 Javascript
AngularJS 整理一些优化的小技巧
Aug 18 Javascript
基于AngularJS的拖拽文件上传的实例代码
Jul 15 Javascript
Vue的轮播图组件实现方法
Mar 03 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
May 25 Javascript
浅析Vue.js 中的条件渲染指令
Nov 19 Javascript
vue实现的双向数据绑定操作示例
Dec 04 Javascript
Vue watch响应数据实现方法解析
Jul 10 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
php银联网页支付实现方法
2015/03/04 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
介绍Python的Urllib库的一些高级用法
2015/04/30 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
深入理解Python异常处理的哲学
2019/02/01 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
python suds访问webservice服务实现
2020/06/26 Python
降低python版本的操作方法
2020/09/11 Python
python集合的新增元素方法整理
2020/12/07 Python
介绍一下.net和Java的特点和区别
2012/09/26 面试题
J2EE相关知识面试题
2013/08/26 面试题
公司年会演讲稿范文
2014/01/11 职场文书
工作失职检讨书范文
2014/01/16 职场文书
小学生元旦广播稿
2014/02/21 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
单位租房协议书样本
2014/10/30 职场文书
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python