路由的定义及作用

根组件根据客户端不同的请求网址显示时,要卸载上一个组件,再挂载下一个组件,如果手动操作话将是一个巨大麻烦。具体过程如下图:


【根组件】

【首页组件】 【新闻组件】 【商品组件】

【react-router】可以让根组件动态的去挂载不同的其他组件。(根据用户访问的地址动态的加载不同的组件)

一、路由使用步骤

【官网文档入口】:https://github.com/ReactTraining/react-router

1.react路由的配置:

1、找到官方文档

https://reacttraining.com/react-router/web/example/basic

2、安装

cnpm install react-router-dom --save

3、找到项目的根组件引入react-router-dom

 import { BrowserRouter as Router, Route, Link } from "react-router-dom";

4、复制官网文档根组件里面的内容进行修改 (加载的组件要提前引入)

注:exact表示严格匹配,不加的话,点新闻时,还是会把首页也加载进来

<Router>
<Link to="/">首页</Link>
<Link to="/news">新闻</Link>
<Link to="/product">商品</Link> <Route exact path="/" component={Home} />
<Route path="/news" component={News} />
<Route path="/product" component={Product} />
</Router>

二、路由的实例

【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 News from './components/News';
import Product from './components/Product'; function App() {
return (
<Router>
<div>
<header className="title">
<Link to="/">首页</Link> |
<Link to="/news">新闻</Link> |
<Link to="/product">商品</Link> |
</header> <br /><hr /> <Route exact path="/" component={Home} />
<Route path="/news" component={News} />
<Route path="/product" component={Product} />
</div>
</Router>
);
}
export default App;

【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;

【src/components/News.js】

import React, { Component } from 'react';

class News extends Component {
constructor(props) {
super(props);
this.state = { };
}
render() {
return (
<div>
我是新闻组件
</div>
);
}
}
export default News;

【src/components/Product.js】

import React, { Component } from 'react';

class Product extends Component {
constructor(props) {
super(props);
this.state = { };
}
render() {
return (
<div>
我是商品组件
</div>
);
}
}
export default Product;

【效果】:点上面导航,下面内容自动切换(自动卸载前一个组件,加载新组件)

十三、react-router 4.x的基本配置的更多相关文章

  1. React Router API文档

    React Router API文档 一.<BrowserRouter> 使用HTML5历史记录API(pushState,replaceState和popstate事件)的<Rou ...

  2. React Router基础使用

    React是个技术栈,单单使用React很难构建复杂的Web应用程序,很多情况下我们需要引入其他相关的技术 React Router是React的路由库,保持相关页面部件与URL间的同步 下面就来简单 ...

  3. 关于react router 4 的小实践

    详细代码栗子:https://github.com/wayaha/react-dom-CY clone然后 npm install npm start 分割线 1.这个项目使用create-react ...

  4. React Router 4.x 开发,这些雷区我们都帮你踩过了

    前言 在前端框架层出不穷的今天,React 以其虚拟 DOM .组件化开发思想等特性迅速占据了主流位置,成为前端开发工程师热衷的 Javascript 库.作为 React 体系中的重要组成部分:Re ...

  5. React Router的Route的使用

    Route 是 React Router中用于配置路由信息的组件,每当有一个组件需要根据 URL 决定是否渲染时,就需要创建一个 Route. 1) path 每个 Route 都需要定义一个 pat ...

  6. React Router教程

    React Router教程 React项目的可用的路由库是React-Router,当然这也是官方支持的.它也分为: react-router 核心组件 react-router-dom 应用于浏览 ...

  7. React Router 用法

    React Router 用法 一.DEMO import React from "react"; import { HashRouter as Router, Route, Li ...

  8. 笔记react router 4(二)

    上一篇我们提到react router 4的dom特性.那么这一次,我们来说一说4.X中的路由组件嵌套. 用过3.X的同学应该知道,路由组件的嵌套(即,路由的配置)方式是通过给<Route> ...

  9. react router @4 和 vue路由 详解(七)react路由守卫

    完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 12.react路由守卫? a.在之前的版本中,React Router 也提供了类似的 ...

  10. react router @4 和 vue路由 详解(全)

    react router @4 和 vue路由 本文大纲: 1.vue路由基础和使用 2.react-router @4用法 3.什么是包容性路由?什么是排他性路由? 4.react路由有两个重要的属 ...

随机推荐

  1. Html转图片 -- wkhtmltox

    关于wkhtmltox,是一个可以把HTML转换为图片和pdf的工具. 不多介绍了,详见官网 https://wkhtmltopdf.org/ PHP 扩展 https://github.com/kr ...

  2. java set的线程安全

    CopyOnWriteArraySet和ConcurrentSkipListSet 与线程不安全的集合类的对应关系 HashSet -> CopyOnWriteArraySet TreeSet ...

  3. PHP 获取一周的时间

    $date = array( 'Monday' => array(date('Y-m-d H:i:s',strtotime("Monday")),date('Y-m-d H: ...

  4. java并发:初探消费者和生产者模式

    消费者和生产者模式 用继承Thread方式,用wait和notifyAll方法实现. 消费者和生产者模式的特点 1. 什么时候生产:仓库没有满的时候,生产者这可以生产,消费者也可以消费,仓库满的时候停 ...

  5. 新闻网大数据实时分析可视化系统项目——3、Hadoop2.X分布式集群部署

    (一)hadoop2.x版本下载及安装 Hadoop 版本选择目前主要基于三个厂商(国外)如下所示: 1.基于Apache厂商的最原始的hadoop版本, 所有发行版均基于这个版本进行改进. 2.基于 ...

  6. 二、js中基础知识

    该篇文章主要是强化一下自己javaScript的基础,让写代码变得更轻松些.基础好的请忽略.    JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解 ...

  7. Day2-G-Sticks-POJ1011

    George took sticks of the same length and cut them randomly until all parts became at most 50 units ...

  8. java中栈内存与堆内存(JVM内存模型)

    java中栈内存与堆内存(JVM内存模型) Java中堆内存和栈内存详解1 和 Java中堆内存和栈内存详解2 都粗略讲解了栈内存和堆内存的区别,以及代码中哪些变量存储在堆中.哪些存储在栈中.内存中的 ...

  9. python中判断素数的函数

    来看这一种判断素数(质数)的函数: form math import sart def is_prime(n): if n==1: return False for i in range(2, int ...

  10. VM ubuntu18.04.01虚拟机没办法联网

    sudo service network-manager stop sudo rm /var/lib/NetworkManager/NetworkManager.state sudo service ...