一、概述

实现功能:点首页,展示首页,同时在左侧有个首页的各个栏目导航;点用户,同首页;

二、代码实现

1. src/App.js

import React from 'react';
import './App.css';
import { BrowserRouter as Router, Route,Link } from 'react-router-dom'; //引入路由模块
import Home from './components/home';
import User from './components/user'; function App() {
return (
<Router>
<div>
<header className='header'>
<Link to='/'>首页</Link>
<Link to='user'>个人中心</Link>
</header>
<Route exact path="/" component={Home} />
<Route path="/user" component={User} />
</div>
</Router>
);
}
export default App;

src/App.css

.header{
background-color:#000;
height: 50px;
padding-top: 5px;
padding-left: 5px;
}
.header a{
color: #fff;
margin-right: 10px;
/*a链接在 div内垂直居中写法*/
height: 50px;
line-height: 50px; }

2.【重点】src/components/user.js

import React, { Component } from 'react';
import './css/user.css';
import {BrowserRouter as Router,Route,Link} from 'react-router-dom';
import Main from './user/main.js';
import Info from './user/info'; class User extends Component {
constructor(props){
super(props);
this.state={}
} render() {
return (
<Router>
<div className='user'>
<div className='left'>
<Link to='/user/'>个人中心</Link><br/>
<Link to='/user/info'>个人信息</Link>
</div> <div className='right'>
{/* 父目录的动态写法:this.props.match.url 在此处=/user/ */}
<Route exact path={`${this.props.match.url}/`} component={Main} />
<Route path='/user/info' component={Info} />
</div>
</div>
</Router>
);
}
}
export default User;

src/components/css/user.css

.user{
width:100%;
height: 800px;
display:flex;
}
.user .left{
width:200px;
height: 800px;
background-color: antiquewhite;
border: 1px solid rgb(189, 71, 71);
padding-left: 20px;
padding-top: 50px; }
.user .right{
-webkit-flex: 1;
flex:1;
height: 800px;
background-color: #eee;
border: 1px solid rgb(170, 43, 43);
}

3.src/components/user/main.js、info.js

3.1 main.js

import React, { Component } from 'react';

class Main extends Component {
constructor(props){
super(props);
this.state={}
} render() {
return (
<div>
这里是个人中心主页
</div>
);
}
}
export default Main;

3.2 info.js

import React, { Component } from 'react';

class Info extends Component {
constructor(props){
super(props);
this.state={}
} render() {
return (
<div>
这里是个人信息中心
</div>
);
}
}
export default Info;

4.src/components/home.js

import React, { Component } from 'react';

class Home extends Component {
constructor(props){
super(props);
this.state={ }
} render() {
return (
<div>
这里是首页
</div>
);
}
}
export default Home;

5.效果



从首页点到个人中心后,再点左侧导航,可跳转到对应信息处

十七、React路由嵌套:头部导航+侧边导航的更多相关文章

  1. react路由嵌套

    所谓的嵌套路由就是在某些以及路由下面存在二级路由,这些二级路由除了公用一级路由导航模块外,还公用当前的二级路由的导航模块,也就是部分进行了切换,要实现嵌套路由,首先回顾之前的内容,实现基本的react ...

  2. 我的一个React路由嵌套(多级路由),路由传参之旅

    在上一篇react路由之旅中,我们简单地配置了react,进行了react路由及相关知识的学习,引入以及实现一个局部跳转的功能,接下来就是深入学习路由的嵌套以及传参,这是工作中主要用要的. 我的rea ...

  3. React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)

    最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...

  4. Vue总结第五天:vue-router (使用模块化(创建Vue组件)机制编程)、router-link 标签的属性、路由代码跳转、懒加载、路由嵌套(子路由)、路由传递数据、导航守卫)

    Vue总结第五天:vue-router ✿ 路由(器)目录: □  vue中路由作用 □  vue-router基本使用 □  vue-router嵌套路由 □  vue-router参数传递 □  ...

  5. jQuery实现侧边导航栏效果

    效果图: 效果体验:http://keleyi.com/keleyi/phtml/jqmenu/2.htm 以下是完整代码: <!DOCTYPE html> <html> &l ...

  6. Android 新兴的UI模式——侧边导航栏【转】

    侧边导航栏也就是大家熟知的SliddingMenu,英文也叫Fly-In App Menu.Side Navigation等.当然谷歌现在已经推出类似这个效果的组件--Navigation Drawe ...

  7. 【源码分享】jquery+css实现侧边导航栏

    jquery+css实现侧边导航栏 最近做项目的时候,突然想用一个侧边导航栏,网上找了几个插件,有的太丑而且不太符合我的预期.与其修改别人的代码,不如自己来写一个了.废话不多说先上图,感兴趣的请继续看 ...

  8. [置顶] bootstrap自定义样式-bootstrap侧边导航栏的实现

    前言 bootstrap自带的响应式导航栏是向下滑动的,有时满足不了个性化的需求,需要做一个类似于android drawerLayout 侧滑的菜单,这就是我要实现的bootstrap自定义侧滑菜单 ...

  9. (https专业版)2018年1月5日高仿互站仿友价T5虚拟交易+实物交易商城-站长交易源码送手机版程序10套模版+首页微信登陆+头部下拉导航

    (https专业版)2018年1月5日高仿互站仿友价T5虚拟交易+实物交易商城-站长交易源码送手机版程序10套模版+首页微信登陆+头部下拉导航 首页支持微信登陆,只有第8套模板支持(endv模板),后 ...

随机推荐

  1. AVL-Tree (平衡二叉树)

    看到网上AVL-Tree大多数都是用相同的实现方式 —— 递归进行插入.删除.维护平衡等,而我比较喜欢用带父指针的数据结构,于是想了一下午,用C实现了一个迭代版的. 由于没有暂时没有好的画二叉树的工具 ...

  2. [zlib] CMake + VS2015 下编译zlib,及使用小例

    下载与解压 可以到zlib官网 http://zlib.net/ 下载,这个没有被墙的,如果下载,试一下换个网络再访问.因为我在公司的网络是访问不了的. 我当前使用的是 zlib1.2.11版本. 下 ...

  3. PostgreSQL存取jsonb

    从PostgreSQL 9.3开始,json就成了postgres里的一种数据类型,也就是和varchar.int一样,我们表里的一个字段的类型可以为json了. 与此同时,postgres还提供了j ...

  4. nodejs的C++扩展中实现异步回调

    在nodejs的官方网站中有关于C++扩展的详细说明,其中包含了从"hello world"到对象封装的一系列示例.其中的“callback”节是关于回调函数的,美中不足的是,这个 ...

  5. Qt 调用本地浏览器打开URL

    点击Qt某些控件,查找本地浏览器打开前端传递的URL. 方法一:直接写死本地浏览器地址 QString programAdress = "C:\Program Files (x86)\Goo ...

  6. Django 学习之From组件

    一.Form组件介绍 Form组件可以做的几件事情: 1.用户请求数据验证 2.自动生成错误信息 3.打包用户提交的正确信息 4.如果其中有一个错误了,其他的正确这,保留上次输入的内容 4.自动创建i ...

  7. 8.Memcache

    1.概述 (1) Memcached是什么 Memcached是一款开源的.高性能的.分布式的内存对象缓存系统 (2) Memcached能干什么 最主要的功能就是:在内存中缓存数据,以减轻数据库负载 ...

  8. 【快学springboot】9.使用 @Transactional 注解配置事务管理

    介绍 springboot对数据库事务的使用非常的方便,只需要在方法上添加@Transactional注解即可.Spring 为事务管理提供了丰富的功能支持.Spring 事务管理分为编程式和声明式的 ...

  9. 银行输入密码五次次数限制python程序实现

    python银行输入密码五次次数限制程序实现,主要在于对于异常情况的处理语句的编写,需要使用while循环语句和try和except异常处理语句的复合编写语句n=0while n<5: try: ...

  10. 四、spring集成ibatis进行项目中dao层基类封装

    Apache iBatis(现已迁至Google Code下发展,更名为MyBatis)是当前IT项目中使用很广泛的一个半自动ORM框架,区别于Hibernate之类的全自动框架,iBatis对数据库 ...