react 路由 react-router-dom
- import React from 'react';
- import DataList from './data'
- import Tr from './Tr'
- // import One from '../One'
- import User from '../User'
- import Two from '../Two'
- import NotFound from '../NotFound';
- import {Redirect,NavLink,Route,Switch} from 'react-router-dom';
//Redirect 重定向标签 NavLink路由跳转标签 Route显示路由的窗口 Switch用来保证路由窗口只显示一个路由标签 用来包裹Route标签- class Tab extends React.Component{
- render(){
- return (
- <div>
- {
- <div>
//路由书写的规则 exact是用来精确匹配 component={组件名}- <NavLink to='/two/companies'>two</NavLink>
- <NavLink to='/one/users'>one</NavLink>
- <Switch>
- <Redirect exact from='/' to='/one/companies' />
- <Route path='/one/:type?' component={User}/>
- <Route path='/two/:id?' component={Two}/>
- <Route component={NotFound}></Route>
- </Switch>
- </div>
- }</div>
- )
- }
- }
- export default Tab;
子路由:
- import React from 'react';
- import axios from 'axios';
- import OneTwo from './OneTwo'
- import {Switch,NavLink,Route} from 'react-router-dom';
- import NotFound from './NotFound'
- class User extends React.Component{
- constructor(props){
- super(props);
- this.state = {
- list : []
- }
- };
- componentDidMount(){ //组件挂载以后函数 通过this.props.match.params获取路由传参的值。
- let {type} = this.props.match.params;
- this.getData(type);
- };
- getData(id){
- axios.get('http://localhost:4000/'+id)
- .then((res)=>{
- this.setState({
- list:res.data
- })
- })
- };
- componentWillReceiveProps(){ //组件将更新props的值
- let {type} = this.props.match.params;
- this.getData(type);
- }
- render(){
- let {list} = this.state;
- return (
- <div>
- {list.map((item)=>{
- return (
- <div key={item.id}>
//路由字符串的写法拼接写法 对象写法在下面- <NavLink to={this.props.match.url+'/'+item.id}>{item.name}</NavLink>
- </div>
- )
- })}
- <Switch>
//组件该显示的位置要放出循环外- <Route path="/one/users/:userid" component={OneTwo}/>
- </Switch>
- </div>
- )
- }
- }
- export default User;
详情组件:
- import React from 'react';
- import axios from 'axios';
- class OneTwo extends React.Component{
- constructor(props){
- super(props);
- this.state = {
- list : {}
- }
- }
- getData(id){
//将路由传来的id进行匹配拿到数据- axios.get('http://localhost:4000/users/'+id)
- .then((res)=>{
- this.setState({
- list: res.data
- })
- })
- }
- componentDidMount(){
- let {userid} = this.props.match.params;
- this.getData(userid);
- };
- componentWillReceiveProps(){
- let {userid} = this.props.match.params;
- this.getData(userid);
- }
- render(){
- let {list} = this.state;
- return (
- <div>
//枚举对象返回一个key值数组- {Object.keys(list).map((item)=>{
- return (
- <div key={item}>
- {item}:{list[item]}
- </div>
- )
- })}
- </div>
- )
- }
- }
- export default OneTwo;
感觉就和vue一样
react 路由 react-router-dom的更多相关文章
- react第十四单元(react路由-react路由的跳转以及路由信息)
第十四单元(react路由-react路由的跳转以及路由信息) #课程目标 理解前端单页面应用与多页面应用的优缺点 理解react路由是前端单页面应用的核心 会使用react路由配置前端单页面应用框架 ...
- react第十三单元(react路由-react路由的跳转以及路由信息) #课程目标
第十三单元(react路由-react路由的跳转以及路由信息) #课程目标 熟悉掌握路由的配置 熟悉掌握跳转路由的方式 熟悉掌握路由跳转传参的方式 可以根据对其的理解封装一个类似Vue的router- ...
- 【React 8/100】 React路由
React路由 React路由介绍 现代的前端应用大多数是SPA(单页应用程序),也就是只有一个HTML页面的应用程序.因为它的用户体验更好.对服务器压力更小,所以更受欢迎.为了有效的使用单个页面来管 ...
- react路由配置(未完)
React路由 React推了两个版本 一个是react-router 一个是react-router-dom 个人建议使用第二个 因为他多了一个Link组件 Npm install react-ro ...
- react router @4 和 vue路由 详解(七)react路由守卫
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 12.react路由守卫? a.在之前的版本中,React Router 也提供了类似的 ...
- 【react router路由】<Router> <Siwtch> <Route>标签
博客 https://www.jianshu.com/p/ed5e56994f13?from=timeline 文档 http://react-guide.github.io/react-router ...
- [React] 10 - Tutorial: router
Ref: REACT JS TUTORIAL #6 - React Router & Intro to Single Page Apps with React JS Ref: REACT JS ...
- 七天接手react项目 系列 —— react 路由
其他章节请看: 七天接手react项目 系列 react 路由 本篇首先讲解路由原理,接着以一个基础路由示例为起点讲述路由最基础的知识,然后讲解嵌套路由.路由传参,最后讲解路由组件和一般组件的区别,以 ...
- react路由案例(非常适合入门)
前面已经已经讲过一次路由 稍微有些复杂 考虑到有些同学刚接触到 我准备了一个简单的demo 就当自己也顺便复习一下 data.js const data = [ { name: 'Ta ...
- react路由深度解析
先看一段代码能否秒懂很重要 这是app.js 全局js的入口 import React from 'react' import { render } from 'react-dom' import ...
随机推荐
- MATLAB与C语言对比实例:随机数生成
MATLAB与C语言对比实例:随机数生成 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 一.整型随机数生成函数 1.C语言程序 int intrand ...
- SudokuGame 记软工第二次作业
整体概况 1.描述编写整体程序正确过程(含关键代码) 2.整体心路历程及新知分析 3.效能分析.构建之法及整体耗时时间表 4.一些心得体会 GitHub 链接如下: 1.[基础作业BIN文件(最新版) ...
- python collection模块
一.模块的认识 定义:模块就是我们把装有特定功能的代码进行归类的结果. 说明:从代码编写的单位来看我们的城西,从小到大:一条代码 -> 语句块 - >代码块(函数.类)-> 模块. ...
- Nginx 的 TCP 负载均衡介绍
Nginx除了以前常用的HTTP负载均衡外,Nginx增加基于TCP协议实现的负载均衡方法. HTTP负载均衡,也就是我们通常所有“七层负载均衡”,工作在第七层“应用层”.而TCP负载均衡,就是我们通 ...
- 【SDOI2017】天才黑客
[SDOI2017]天才黑客 这题太神了. 先模Claris 大神的题解. 首先我们要将边转换为点.如果暴力连边就会有\(m^2\)的边,于是我们考虑优化建图. 难点在于快速得到两个边的串的\(lcp ...
- python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- Python 抖音机器人,论如何在抖音上找到漂亮小姐姐?
只有想不到,没有做不到,最近抖音风靡好友圈,马上就有技术宅本着“代码改变世界”的理念开始了搞事之路. 需要注意的事,漂亮不漂亮没有明确的界限,每个人都有每个人的审美,只有外表而没有心灵的美也是空洞的. ...
- Spring将Bean导入IOC容器
@Import 注解可以普通类导入到 IoC容器中. 想要让一个普通类接受 Spring 容器管理,有以下方法 使用 @Bean 注解 使用 @Controller @Service @Reposit ...
- UVA129-Krypton Factor(搜索剪枝)
Problem UVA129-Krypton Factor Accept:1959 Submit:10261 Time Limit: 3000 mSec Problem Description 通 ...
- Hive窗口函数
参考地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics 环境准备: CRE ...