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 相关文章推荐
js使用正则实现ReplaceAll全部替换的方法
Aug 22 Javascript
node.js中的path.normalize方法使用说明
Dec 08 Javascript
javascript常用的方法整理
Aug 20 Javascript
jquery结婚电子请柬特效源码分享
Aug 21 Javascript
JS加载iFrame出现空白问题的解决办法
May 13 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
Jan 04 Javascript
jQuery实现手势解锁密码特效
Aug 14 jQuery
强大的JavaScript响应式图表Chartist.js的使用
Sep 13 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
Apr 03 Javascript
js实现点击展开隐藏效果(实例代码)
Sep 28 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
Dec 01 Javascript
详解Vue之计算属性
Jun 20 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使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
Javascript 学习书 推荐
2009/06/13 Javascript
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
解决vue中对象属性改变视图不更新的问题
2018/02/23 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
js继承的这6种方式!(上)
2019/04/23 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
python二叉树的实现实例
2013/11/21 Python
Python 的 Socket 编程
2015/03/24 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
基于Django用户认证系统详解
2018/02/21 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
英国领先的维生素和补充剂品牌:Higher Nature
2019/08/26 全球购物
倡议书格式范文
2014/04/14 职场文书
社会实践活动总结
2015/02/05 职场文书
2015年双拥工作总结
2015/04/08 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript