react路由

Posted dropinint

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react路由相关的知识,希望对你有一定的参考价值。

先下载路由

1 npm install react-router-dom --save-dev

然后新建两个页面

component1.js

 1 import React from ‘react‘;
 2 
 3 class Component1 extends React.Component{
 4     render(){
 5         return (
 6             <div>
 7                 <a href="#/component2">去component2</a>
 8             </div>
 9         );
10     }
11 }
12 
13 export default Component1

component2.js

 

import React from ‘react‘;

class Component2 extends React.Component{
    render(){
        return (
            <div>
                <a href="/">回到component1</a>
            </div>
        );
    }
}

export default Component2

 

注意:React.Component的Component中C一定要大写

然后新建Routers.js

 1 import React from ‘react‘;
 2 import {HashRouter, Route, Switch} from ‘react-router-dom‘;
 3 import Component1 from ‘../view/Component1‘;
 4 import Component2 from ‘../view/Component2‘;
 5 
 6 const BasicRoute = () =>(
 7     <HashRouter>
 8         <Switch>
 9             <Route exact path=‘/‘ component={Component1}/>
10             <Route exact path=‘/component2‘ component={Component2}/>
11         </Switch>
12     </HashRouter>
13 )
14 
15 export default BasicRoute;

index.js中编写如下:

1 import React from ‘react‘;
2 import ReactDOM from ‘react-dom‘;
3 import Router from ‘./router/Routers‘
4 
5 ReactDOM.render(<Router />, document.getElementById(‘root‘));

这样完成了一个简单的路由跳转

路由的exact属性

具体区别如下:

1 <Route path=‘/‘ component={Home} />
2 <Route path=‘/page‘ component={Page}>
3 //这种情况下,如果匹配路由path=‘/page‘,那么会把Home也会展示出来。
4 //既路由path=‘/page‘会匹配路由path=‘/‘和路由path=‘/page‘
1 <Route exact path=‘/‘ component={Home} />
2 <Route path=‘/page‘ component={Page} />
3 //这样匹配路由path=‘/page‘,只会匹配到Page组件

 

 

 

以上是关于react路由的主要内容,如果未能解决你的问题,请参考以下文章

使用 Relay 和 React-Native 时的条件片段或嵌入的根容器

[react] Module not found: Can't resolve 'schedule' in 'C:Usersadcaldvmtn7myapp (代码片段

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

Redux&React路由器:梳理调度和导航(history.push)