react路由系列03___路由传值之params

       此篇文章是基于 react路由系列01___ 在react脚手架里使用React-router(简单入门)和 react路由系列02___ 二级路由 上写的,如果你有路由基础,可以直接看这篇文章,如果没有路由基础,则建议先看前两篇文章。

 

React路由传参的三种方式

一、通过params(以GoodsList.js为例

        解释:组件之间传递参数时,一般都是键值对的方式,如:username=tianwater。

    1、传值(需要修改两个地方)

          1)、路由表中(写键名)

                <Route path='/gla/Pencil/:id' component={Pencil} />

                 <Route path='/gla/Eraser/:name' component={Eraser} />

 

           2)、 Link(NavLink)处 (写键对应的值)       

                 <NavLink to={'/gla/Pencil/'+'01008'} >铅笔</NavLink>

                <NavLink to='/gla/Eraser/橡皮02' >橡皮</NavLink>

    2、获取值:

            1)、在“Pencil.js”

 

                            商品编号:{this.props.match.params.id}<br/>

           2)、在“Eraser.js”里

                          商品名称:{this.props.match.params.name}<br/>

 

 

PS:经过以上的更改后,文件“GoodsList.js”,“Pencil.js”,“Eraser.js”的代码分别为(可以复制以下代码):

1)、GoodsList.js文件:

import React, { Component } from 'react';

import { BrowserRouter, Route,NavLink} from 'react-router-dom';

import Pencil from './Pencil';

import Eraser from './Eraser';

 

class GoodsList extends Component{

render(){

return (

<BrowserRouter>

<div>欢迎来到商品列表页面</div><br/>

<NavLink to={'/gla/Pencil/'+'01008'} >铅笔</NavLink>

  | 

<NavLink to='/gla/Eraser/橡皮02' >橡皮</NavLink>

<hr/>

<Route path='/gla/Pencil/:id' component={Pencil} />

<Route path='/gla/Eraser/:name' component={Eraser} />

 

</BrowserRouter>

)

}

}

export default GoodsList;

2)、Pencil.js文件:

import React,{Component} from 'react';

class Pencil extends Component{

render(){

return (

<div>

商品编号:{this.props.match.params.id}<br/>

商品名称:铅笔<br/>

商品描述:铅笔好,铅笔好,铅笔写错还可以擦掉<br/>

</div>

)

}

}

export default Pencil;

 

3)、Eraser.js文件:

import React, { Component } from 'react';

class Eraser extends Component{

render(){

return (

<div>

商品编号:01002<br/>

商品名称:{this.props.match.params.name}<br/>

商品描述:橡皮好,橡皮好,橡皮可以擦掉铅笔写<br/>

</div>

)

}

}

export default Eraser;

 

ok,第一种方式大功告成!

下一篇是第二种方式:通过query的方式

使用react-router-dom创建动态路由非常简单。我们可以使用Route组件来定义路由并在其中使用动态参数。以下是如何使用react-router-dom创建动态路由的步骤: 1. 安装react-router-dom:使用以下命令安装react-router-dom。 ``` npm install react-router-dom ``` 2. 在项目中导入所需的组件: ```javascript import React from "react"; import { BrowserRouter as Router, Switch, Route } from "react-router-dom"; ``` 3. 创建路由并在其中使用动态参数: ```javascript <Router> <Switch> <Route exact path="/" component={Home} /> <<Route exact path="/users/:id" component={User} /> </Switch> </Router> ``` 上面的代码中,我们定义了一个具有动态参数的路由。用户可以通过访问URL `/users/:id` 来访问该路由。其中,`:id` 是一个动态参数,它将被替换为用户请求的实际。 4. 在组件中获取动态参数: 在上面的代码中,我们定义了一个名为`User`的组件。我们可以在该组件中通过`props.match.params.id`来获取动态参数的。以下是一个简单的示例: ```javascript import React from "react"; const User = (props) => { return <h1>User ID: {props.match.params.id}</h1>; }; export default User; ``` 在上面的代码中,我们使用`props.match.params.id`来获取动态参数的,并将其显示在页面上。 这就是使用react-router-dom创建动态路由的基本步骤。你可以根据你的具体需求进行调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值