react路由的使用方法以及通过路由如何传参传递私有属性--【基于最新版本的react-router-dom(4.2.2)】

本文详细介绍React中react-router-dom的使用方法,包括BrowserRouter和HashRouter的选择与应用实例,并讲解了通过路由传参及传递属性的具体实现。

【一】: 如何使用react-router-dom

前提需要:npm install react-router-dom --save-dev (先下载安装react-router-dom);

react 路由分两种

1:BrowserRouter (使用这个需要服务器相关配置)

2:HashRouter(使用这个不需要服务器配置)


具体使用例子( 1 ):

import React from 'react';

import from 'react-dom';

import {

BrowserRouter as Router,

Route,

Switch

} from 'react-router-dom';

import First from './fistpage'; (引入创建好的页面一)

import Second from './secondpage';(引入创建好的页面二)

ReactDOM .render(

<Router>

    <Switch>

        <Route exact path='/' component={ First } ></Route>

        <Route path='/second' component={ Second } ></Route>

    </Switch>

</Router>

, document.getElementById('app'));


具体使用例子(2):

import React from 'react';

import from 'react-dom';

import {

HashRouter as Router,

Route,

Switch

} from 'react-router-dom';

import First from './fistpage'; (引入创建好的页面一)

import Second from './secondpage';(引入创建好的页面二)

ReactDOM .render(

<Router>

    <Switch>

        <Route exact path='/' component={ First } ></Route>

        <Route path='/second' component={ Second } ></Route>

    </Switch>

</Router>

, document.getElementById('app'));

【二】: 如何通过路由传参

方法有二!

1:query

2:state

3:'/pathname/:id'

例:

link页面

1: <Link to={{ pathname: '/first', query: { username: 'lle'}}}>go to first</Link>

或者

2: <Link to={{ pathname: '/first', state: { username: 'lle'}}}>go to first</Link>

或者

3: <Link to='/first/:usrname'>go to first</Link>

跳转目标页面first

1: <div>username :  { this.props.location.query.username } </div>

或者

2: <div>username :  { this.props.location.state.username } </div>

或者

3: <div>username: { this.props.match.params.username }</div>

路由设置页面

<Router>

    <Switch>

        <Route exact path='/' component={ First } ></Route>

        <Route path='/second' component={ Second } ></Route>

    </Switch>

</Router>

【三】: 如何通过路由传递属性

例:

<Router>

    <Switch>

        <Route exact path='/' render={ () =><First data='somedata'></First> } ></Route>

        <Route path='/second' render={ () => <Second data='somedata'></Second>} ></Route>

    </Switch>

</Router>


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值