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 相关文章推荐
{}与function(){}选用空对象{}来存放keyValue
May 23 Javascript
js中数组Array的一些常用方法总结
Aug 12 Javascript
jQuery中last()方法用法实例
Jan 06 Javascript
js实现截图保存图片功能的代码示例
Feb 16 Javascript
AngularJS读取JSON及XML文件的方法示例
May 25 Javascript
BootStrap daterangepicker 双日历控件
Jun 02 Javascript
Bootstrap提示框效果的实例代码
Jul 12 Javascript
Three.js利用性能插件stats实现性能监听的方法
Sep 25 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
Mar 13 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
Apr 17 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
Aug 17 Javascript
vue路由传参的基本实现方式小结【三种方式】
Feb 05 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
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
jquery ajax abort()的使用方法
2010/10/28 Javascript
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
js实现查询商品案例
2020/07/22 Javascript
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python使用递归的方式建立二叉树
2019/07/03 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
Python日志syslog使用原理详解
2020/02/18 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
使用css实现android系统的loading加载动画
2019/07/25 HTML / CSS
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
保荐人的岗位职责
2013/11/19 职场文书
《春笋》教学反思
2014/04/15 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2015年工程师工作总结
2015/04/30 职场文书
冰雪公主观后感
2015/06/16 职场文书
二婚主持词
2015/06/30 职场文书
祝寿主持词
2015/07/02 职场文书
教务处教学工作总结
2015/08/10 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
【2·13】一图读懂中国无线电发展
2022/02/18 无线电