一、概述

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

二、代码实现

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. Spring学习(五)

    自动装备 1.定义 自动装配(autowiring): 将某个Bean实例中所引用的其它的Bean自动注入到当前Bean实例中 自动装配就是指由Spring来自动地注入依赖对象,无需人工参与. 自动装 ...

  2. 学习笔记(3)- BioASQ

    本次目的是验证BioBERT在QA的效果. A challenge on large-scale biomedical semantic indexing and question answering ...

  3. 「AMPPZ2014」The Captain

    传送门: 这是一道bzoj权限题 Luogu团队题链接 解题思路 直接连边的话边数肯定会爆炸,考虑减少边数. 我们画出坐标系,发现一个东西: 对于两个点 \(A,B\),\(|x_A-y_A|\) 可 ...

  4. Python 基础之if if else

    1.代码块 以冒号作为开始,用缩进来划分区域,这个整体叫做代码块 if 5 == 5:   print(1)   print(2)   if True:   print(3)   print(4)   ...

  5. Tomcat的部署、虚拟主机及优化

    Tomcat的部署.虚拟主机及优化 文章目录 Tomcat的部署.虚拟主机及优化 前言 1.Tomcat的名称由来 2.Apache Tomcat 5-7版本差异 2.1Apache Tomcat5. ...

  6. 高手教大家如何配置JVM参数

    /usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K ...

  7. nrm 源管理器

    什么是nrm nrm 是一个 npm 源管理器,允许你快速地在 npm 源间切换. 安装nrm 在命令行执行命令,npm install -g nrm,全局安装nrm. 使用 执行命令nrm ls查看 ...

  8. 仿有道词典App开发

    最近在学习HCoder提供的仿有道词典App项目,该项目采用MUI为前端框架,服务端采用PHP,底层采用了H5+.

  9. java关于hasNext()

    编写一段程序实现如果输入的一组数中含非整数数字,输出数字相加的和以及"attention"字符,如果全部是数字便输出数字的和. 程序1: package mian; import ...

  10. NPOI,导出Execl,压缩文件zip,发送Email

    private void SendEmail(string emailAddress, string companyName,string proxy, string officer, DataTab ...