本文实例为大家分享了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 ..
其余二级三级页面类似
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
我的页面是三级嵌套路由,结构类似于 /message/detail/0。 但当我使用 this.$router.push('/index') 返回首页的时候,页面路径变成了/message/detail/index。 请问我该如何解决这个问题,希望从 /message/detail/0 页面直接跳转到 /index。 这个是路由配置的JS:
本文向大家介绍react-router JS 控制路由跳转实例,包括了react-router JS 控制路由跳转实例的使用技巧和注意事项,需要的朋友参考一下 Link组件用于正常的用户点击跳转,但是有时还需要表单跳转、点击按钮跳转等操作。这些情况怎么跟React Router对接呢? 下面是一个表单。 第一种方法是使用browserHistory.push 第二种方法是使用context对象。
本文向大家介绍Vue实现路由跳转和嵌套,包括了Vue实现路由跳转和嵌套的使用技巧和注意事项,需要的朋友参考一下 一、配置 Router 用 vue-cli 创建的初始模板里面,并没有 vue-router,需要通过 npm 安装 安装完成后,在 src 文件夹下,创建一个 routers.js 文件,和 main.js 平级 然后在 router.js 中引入所需的组件,创建 routers 对
如题,各位我有一个项目,现在有一个需求,在弹出窗口中跳转到一个选择页面,选择完成之后返回原来的页面,如何保持原来的页面状态不变? 尝试过使用keep-alive但是效果不理想。 请问有什么办法,或者什么思路! 备注:页面都是同一个站点的
route(Object) 此为一个路由跳转方法,内部是对uni多个路由跳转api的封装,更方便使用 Object参数说明: 参数名 类型 默认值 是否必填 说明 type String navigateTo false navigateTo或to对应uni.navigateTo,redirect或redirectTo对应uni.redirectTo,switchTab或tab对应uni.swit
问题: 前端如何跳转页面路径 ? 我尝试使用了路由的语法, 但是没有跳转