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 相关文章推荐
替代window.event.srcElement效果的可兼容性的函数
Dec 18 Javascript
jQuery AJAX 调用WebService实现代码
Mar 24 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
Dec 30 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
Nov 19 Javascript
跟我学习javascript的隐式强制转换
Nov 16 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
JS实现评价的星星功能
Aug 20 Javascript
AngularJS的$location使用方法详解
Oct 19 Javascript
学习RxJS之JavaScript框架Cycle.js
Jun 17 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
Jun 21 Javascript
vue-drawer-layout实现手势滑出菜单栏
Nov 19 Vue.js
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
150kHz到30Mhz完全冲浪手册
2020/03/20 无线电
PHP脚本的10个技巧(6)
2006/10/09 PHP
php+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
2012/01/15 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
Postman参数化实现过程及原理解析
2020/08/13 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
Python 函数基础知识汇总
2018/03/09 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
python读取xml文件方法解析
2020/08/04 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
J2EE面试题
2016/03/14 面试题
小学秋季运动会报道稿
2014/09/30 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
承兑汇票延期证明
2015/06/23 职场文书
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL
PHP使用QR Code生成二维码实例
2021/07/07 PHP
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python
Selenium浏览器自动化如何上传文件
2022/04/06 Python