react 路由Link配置详解


Posted in Javascript onNovember 11, 2021

1、Link的to属性

(1)放置路由路径
(2)放置对象,且为规定格式
{pathname:"/xx",search:'?键值对',hash:"#xxx",state:{键值对}}
会自动将pathname、search、hash拼接在url路径上,state为传入的参数
可通过输出props查看对象内的信息
this.props.location.state.键名获取state内的数据

2、Link的replace属性

添加replace将跳转前的上一个页面替换成当前页面,只将当前页面入栈

3、Link传参

在to路径后添加"/键值"
在路由route,path路径后添加"/:键名"
在组件中,函数式组件:先传入props形参,然后props.match.params.键名
类组件:this.props.match.params.键名

代码示例:

import React,{Component} from 'react'
//import {Route,BrowserRouter,Link} from 'react-router-dom'
//将BrowserRouter重命名为Router
import {BrowserRouter as Router,Link,Route} from 'react-router-dom'
import { Button } from 'antd';
import './App.css';

function Home()
{
  return(
      <div>admin首页</div>
    )
}

function Me(props)
{
  console.log(props)
  return(
      <div>admin我的</div>
    )
}

function Product(props)
{
  return(
      <div>admin产品页面:{props.match.params.id}</div>
    )
}

export default class App extends Component{
   constructor()
    {
      super();
    }
    render()
    {
    {/*若将路径写成对象形式,且和下面相同,会自动将pathname、search、hash自动拼接在url路径上,state为传入组件的数据*/}
      let obj={pathname:"/me",search:'?username=admin',hash:"#abc",state:{msg:'hello'}}
      return(
        <div id='app'>
      {/*BrowserRouter可以放多个*/}
          <Router>
        
        {/*因为组件也是返回html内容,故可以直接通过函数返回html内容充当组件,但不能直接写html内容*/}
          <div>  
            <Route path="/"  exact component={()=><div>首页</div>}></Route>
            <Route path="/product"  component={()=><div>product</div>}></Route>
            <Route path="/me"  component={()=><div>me</div>}></Route>
          </div>
          {/*<Route path="/" component={function(){return <div>首页2</div>}}></Route>*/}

          </Router>
        

          
          {/*BrowserRouter内部只能有一个根容器,包裹其他内容*/}
        {/*添加basename='/xx'后,点击Link跳转其他路由时,url会将/xx添加到路由名前,所以使用路由路径和加了admin的路由路径都能匹配该路由*/}
          <Router basename='/admin'>
            <div>
                <div className='nav'>
                    <Link to='/'>Home</Link>
                    <Link to='/product/123'>Product</Link>
                  {/*可在对应的组件中输出props查看传入的对象的信息,添加replace将跳转前的上一个页面替换成当前页面,只将当前页面入栈*/}
                    <Link to={obj} replace>个人中心</Link>
                </div>

                <Route path="/" exact component={Home}></Route>
                <Route path="/product/:id"  component={Product}></Route>
                <Route path="/me" exact component={Me}></Route>
            </div>
          </Router>

        </div>
        
      )
    }
}

 到此这篇关于react 路由Link配置详解的文章就介绍到这了,更多相关react 路由Link内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Javascript 去除数组的重复元素
May 04 Javascript
js实现交换运动效果的方法
Apr 10 Javascript
JavaScript操作Cookie方法实例分析
May 27 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
Oct 15 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
php输出全部gb2312编码内的汉字方法
Mar 04 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
Apr 18 Javascript
vue2.0 keep-alive最佳实践
Jul 06 Javascript
layui按条件隐藏表格列的实例
Sep 19 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
Nov 14 Javascript
vue中监听路由参数的变化及方法
Dec 06 Javascript
vue页面更新patch的实现示例
Mar 25 Javascript
React Fragment介绍与使用详解
Nov 11 #Javascript
在js中修改html body的样式
Nov 11 #Javascript
用JS创建一个录屏功能
JavaScript数组 几个常用方法总结
Nov 11 #Javascript
JavaScript 事件捕获冒泡与捕获详情
JavaScript 定时器详情
Nov 11 #Javascript
使用javascript解析二维码的三种方式
Nov 11 #Javascript
You might like
php join函数应用
2011/05/04 PHP
php 定界符格式引起的错误
2011/05/24 PHP
PHP实现时间轴函数代码
2011/10/08 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
js给selected添加options的方法
2015/05/06 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
对Angular中单向数据流的深入理解
2018/03/31 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
个人简历中的自我评价范例
2013/10/29 职场文书
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
现役军人家属慰问信
2015/03/24 职场文书
力克胡哲观后感
2015/06/10 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书