zoukankan      html  css  js  c++  java
  • 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"/>,
    ]
  • 相关阅读:
    Libgdx之Music Sound 音效
    [Android]Activity的生命周期
    Android开发中无处不在的设计模式——动态代理模式
    Wireshark数据抓包分析——网络协议篇
    iOS-一个弹出菜单动画视图开源项目分享
    给Java开发人员的Play Framework(2.4)介绍 Part1:Play的优缺点以及适用场景
    mybatis自己学习的一些总结
    Cocos2d-x 源代码分析 : Scheduler(定时器) 源代码分析
    exe4j打包java应用程序
    删除sql server用户时报15138错误
  • 原文地址:https://www.cnblogs.com/xiaozhumaopao/p/10999322.html
Copyright © 2011-2022 走看看