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删除提示框弹出是否删除对话框
Jan 07 Javascript
多种方法实现load加载完成后把图片一次性显示出来
Feb 19 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
Jun 26 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
Mar 04 Javascript
JavaScript编程学习技巧汇总
Feb 21 Javascript
基于js中document.cookie全面解析
Sep 14 Javascript
JS扩展String.prototype.format字符串拼接的功能
Mar 09 Javascript
vue-cli脚手架的安装教程图解
Sep 02 Javascript
小程序实现人脸识别功能(百度ai)
Dec 23 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 jQuery
js简单实现自动生成表格功能示例
Jun 02 Javascript
7个你应该知道的JS原生错误类型
Apr 29 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扩展介绍与开发教程
2010/08/19 PHP
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
PHP验证码类ValidateCode解析
2017/01/07 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
ArrayList类(增强版)
2007/04/04 Javascript
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
jQuery 获取多选框的值及多选框中文的函数
2016/05/16 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
python 有效的括号的实现代码示例
2019/11/11 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
what is the difference between ext2 and ext3
2015/08/25 面试题
石油工程专业毕业生求职信
2014/04/13 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
2014年党员整改措施
2014/10/24 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书
新课程改革心得体会
2016/01/22 职场文书