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 相关文章推荐
深入理解javascript原型链和继承
Sep 23 Javascript
js实现简单选项卡与自动切换效果的方法
Apr 10 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
Apr 16 Javascript
简介JavaScript中substring()方法的使用
Jun 06 Javascript
JQuery在循环中绑定事件的问题详解
Jun 02 Javascript
JavaScript事件学习小结(三)js事件对象
Jun 09 Javascript
深入理解Node.js中的进程管理
Mar 13 Javascript
vue中如何引入jQuery和Bootstrap
Apr 10 jQuery
用JS编写一个函数,返回数组中重复出现过的元素(实例)
Sep 14 Javascript
详解JavaScript作用域和作用域链
Mar 19 Javascript
详细分析vue响应式原理
Jun 22 Javascript
vue 中this.$set 动态绑定数据的案例讲解
Jan 29 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
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
PHP输出日历表代码实例
2015/03/27 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
动态表格Table类的实现
2009/08/26 Javascript
javascript 年月日联动实现核心代码
2009/12/21 Javascript
在模板页面的js使用办法
2010/04/01 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
JS 实现完美include载入实现代码
2010/08/05 Javascript
jQuery技巧总结
2011/01/01 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
python求解水仙花数的方法
2015/05/11 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
儿科护理实习自我鉴定
2013/09/19 职场文书
实习销售业务员自我鉴定
2013/09/21 职场文书
酒后驾驶检讨书
2014/01/27 职场文书
《走一步再走一步》教学反思
2014/02/15 职场文书
大学生评语大全
2014/04/18 职场文书
自查自纠整改报告
2014/11/06 职场文书
2014年统计工作总结
2014/11/21 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
python和anaconda的区别
2022/05/06 Python