1. 由于 react-router 是集成了 react-router-dom 和 react-router-native的一起的,所以这里要使用的是 react-router-dom,

2. 安装  npm i react-router -S 、 npm i react-router-dom -S

路由配置router.js:

import React from 'react'
import {
Route
} from 'react-router-dom' import TopicList from '../views/topic-list/index'
import TopicDetail from '../views/topic-detail/index' export default () => [
//react 16 可以直接返回一个数组 不需要在外层加div
/* 这里路由为 ‘/’ 的要加上 exact。因为/路由最大,覆盖了/detail 等路由,不加设置的话,
所有的页面都会同时加载 / 的路由内容,所以加上 exact,规定只能严格等于该路由。
*/
<Route path="/" component={TopicList} exact/>,
<Route path="/detail" component={TopicDetail} key="detail" />,
]

对于最外层的入口文件 app.js

import React from 'react'
import ReactDOM from 'react-dom'
import { BrowserRouter } from 'react-router-dom' //浏览器路由
import { AppContainer } from 'react-hot-loader' // eslint-disable-line
import App from './views/App'//组件 const root = document.getElementById('root')
const render = (Component) => {
ReactDOM.hydrate(
<AppContainer>
<BrowserRouter>
<Component />
</BrowserRouter>
</AppContainer>,
root,
)
} render(createApp(App)) if (module.hot) {
module.hot.accept('./views/App', () => {
const NextApp = require('./views/App').default // eslint-disable-line
render(createApp(NextApp))
})
}

使用 Redirect组件,可以在用户访问某个路由时,跳转到其他路由:

import React from 'react'
import {
Route,
Redirect,
} from 'react-router-dom' import TopicList from '../views/topic-list/index'
import TopicDetail from '../views/topic-detail/index' export default () => [
<Route path="/" render={()=>{ <Redirect to ="/list"/>}} key="index" exact/>,
<Route path="/list" component={TopicList} key="list"/>,
<Route path="/detail" component={TopicDetail} key="detail"/>,
]

webpack 配置react脚手架(四):路由配置的更多相关文章

  1. webpack 配置react脚手架(二):热更新

    下面继续配置 webpack dev server    hot module replacement: 首先配置dev-server     安装     npm i webpack-dev-ser ...

  2. webpack 配置react脚手架(六):api

    1 访问网址 https://cnodejs.org/api 可以调取api 2.//该body-parser 可以将请求的body数据,转变成 json 格式数据://express-session ...

  3. react中的路由配置踩坑记

    react 路由配置中,如果根路由(/)匹配一个组件,另一个路由(/list)在进行匹配的时候也会匹配到根路由(/),即在 /list 页面展示的时候 / 页面总是展示在上方. 此时如果想进行严格匹配 ...

  4. react ant design路由配置

    最初的时候,只使用了antd中的menu,header和footer都是自己写的组件,在写路由时,总是报如下错误: 相关的路由配置如下: 在网上查的说是组件未暴露出去或者是return 这一行必须有个 ...

  5. react 脚手架 及路由和 redux

    前提是我们需要下载 nodejs 使用 npm 下载 react 的脚手架,react-router-dom,redux 全局下载 react 的脚手架:npm i create-react-app ...

  6. webpack 配置react脚手架(三):eslint 及优化

    首先谨记 eslint的官网:  http://eslint.cn/ 1 安装eslint  npm i eslint -D 2.在根目录下新建文件 .eslintrc { "extends ...

  7. webpack 配置react脚手架

    1 react 基本js文件: import React from 'react'; import ReactDOM from 'react-dom'; import App from './App. ...

  8. webpack 配置react脚手架(五):mobx

    1.  配置项.使用mobx,因为语法时es6-next,所以先配置 .babelrc 文件 { "presets": [ ["es2015", { " ...

  9. react脚手架搭建及配置

    npm install -g create-react-app 装完之后,生成一个新的项目,可以使用下面的命令: create-react-app my-app cd my-app/yarn star ...

随机推荐

  1. 基于libuv的TCP设计(三)

      基于libuv的TCP设计(一) 基于libuv的TCP设计(二)   一.第二版本的libuv_tcp已经基本可以使用.不会出错与崩溃现象,支持几百路客户端同时连接.可是有一缺陷就占用CPU非常 ...

  2. 大师Geoff Hinton关于Deep Neural Networks的建议

    大师Geoff Hinton关于Deep Neural Networks的建议 Note: This covers suggestions from Geoff Hinton's talk given ...

  3. 02. xadmin的过滤器queryset()

    需求: 每个老师都只能看到自己的课程 # models.py from django.contrib.auth.models import AbstractUser class UserProfile ...

  4. 非常好用的JavaScript 工具库--lodash

    一.什么是lodash? lodash库是一个具有一致接口.模块化.高性能等特性的 JavaScript 工具库. lodash是一个javascript库,也是Node JS的常用模块,它内部封装了 ...

  5. Java程序内存分析

    1. Runtime.getRuntime().freeMemory() 和 jvisualvm.exe http://blog.csdn.net/u011004037/article/details ...

  6. js复制json对象

    var newJson = JSON.parse(JSON.stringify(json对象));

  7. Redis从认识安装到实现增删改查

    Redis从一无所知,到知道一点点 Redis是一个使用ANSI C编写的开源.支持网络.基于内存.可选持久性的键值对存储数据库 --维基百科 可以简单的说,Redis就是一款高性能的NoSQL数据库 ...

  8. 《Mysql - 读写分离有哪些坑?》

    一:读写分离 - 概念 -  读写分离的主要目标就是分摊主库的压力. - 基本架构 -     -  二:两种读写分离的架构特点 - 客户端直连方案 - 因为少了一层 proxy 转发,所以查询性能稍 ...

  9. jdbc连接oracle的三种方法

    jdbc连接oracle的三种方法 使用service_name,配置方式:jdbc:oracle:thin:@//<host>:<port>/<service_name ...

  10. thinkphp5.0数据导出excel表格

    第一步.创建Model类文件(名称自定) 第二步.在类中写入以下代码 <?php namespace Admin\admin\model; use think\Model; class Mark ...