webpack 配置react脚手架(四):路由配置
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脚手架(四):路由配置的更多相关文章
- webpack 配置react脚手架(二):热更新
下面继续配置 webpack dev server hot module replacement: 首先配置dev-server 安装 npm i webpack-dev-ser ...
- webpack 配置react脚手架(六):api
1 访问网址 https://cnodejs.org/api 可以调取api 2.//该body-parser 可以将请求的body数据,转变成 json 格式数据://express-session ...
- react中的路由配置踩坑记
react 路由配置中,如果根路由(/)匹配一个组件,另一个路由(/list)在进行匹配的时候也会匹配到根路由(/),即在 /list 页面展示的时候 / 页面总是展示在上方. 此时如果想进行严格匹配 ...
- react ant design路由配置
最初的时候,只使用了antd中的menu,header和footer都是自己写的组件,在写路由时,总是报如下错误: 相关的路由配置如下: 在网上查的说是组件未暴露出去或者是return 这一行必须有个 ...
- react 脚手架 及路由和 redux
前提是我们需要下载 nodejs 使用 npm 下载 react 的脚手架,react-router-dom,redux 全局下载 react 的脚手架:npm i create-react-app ...
- webpack 配置react脚手架(三):eslint 及优化
首先谨记 eslint的官网: http://eslint.cn/ 1 安装eslint npm i eslint -D 2.在根目录下新建文件 .eslintrc { "extends ...
- webpack 配置react脚手架
1 react 基本js文件: import React from 'react'; import ReactDOM from 'react-dom'; import App from './App. ...
- webpack 配置react脚手架(五):mobx
1. 配置项.使用mobx,因为语法时es6-next,所以先配置 .babelrc 文件 { "presets": [ ["es2015", { " ...
- react脚手架搭建及配置
npm install -g create-react-app 装完之后,生成一个新的项目,可以使用下面的命令: create-react-app my-app cd my-app/yarn star ...
随机推荐
- gluster设置日志级别
glusterd --log-level WARNING #将日志级别设定为warning gluster --log-level=ERROR volume status #查看日志级别的状态 glu ...
- Google BERT
概述 BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不 ...
- Spring Boot 入门(八):集成RabbitMQ消息队列
本片文章续<Spring Boot 入门(七):集成 swagger2>,关于RabbitMQ的介绍请参考<java基础(六):RabbitMQ 入门> 1.增加依赖 < ...
- Git学习(一)——熟悉git操作流程
本篇笔记前面都是仔细介绍使用方法,如果想跳过这些直接熟悉怎么使用,跳到最后一个知识点完整流程介绍. git 了解:特点.优点 1.git用户版和服务版整合在一起,任何机器上都安装了两个版本 2.git ...
- 约会II
#include <stdio.h> int main() { int a,b; while(scanf("%d %d",&a,&b)!=EOF& ...
- 如何自定义xml文件
在定义文件之前,首先要弄清楚什么是xml文件和dtd文件. 一:什么是xml文件? xml是一种可扩展标记性语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有构造性的标记语言. 二:什么事d ...
- ArcGIS JS之 applyEdits之后要素符号更新
ArcGIS JS版本 ArcGIS JS 4.11 最近做一个地图服务,通过FeatureLayer.applyEdits()方法,更新唯一值的渲染字段,实现地图渲染根据用户的配置实时更新. 由于A ...
- jmeter命令行执行脚本_动态参数设置
从04月换公司开始,就没静下来心来学习,其中发生了比较多的事情吧,不过不管如何,没坚持学习还是因为懒.本周交接完,下周去入职新公司,该静下心来学点什么了. ---------------------- ...
- Python之特征工程-3
一.什么是特征工程?其实也是数据处理的一种方式,和前面的原始数据不一样的是,我们在原始数据的基础上面,通过提取有效特征,来预测目标值.而想要更好的去得出结果,包括前面使用的数据处理中数据特征提取,新增 ...
- jenkins pipline
def getHost(){ def remote = [:] remote.name = 'server02' remote.host = '39.19.90' remote.user = 'roo ...