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 相关文章推荐
用Jquery实现多级下拉框无刷新的联动
Dec 22 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
Jan 02 Javascript
jQuery背景插件backstretch使用指南
Apr 21 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
Jul 27 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
Oct 13 Javascript
JS+CSS3模拟溢出滚动效果
Aug 12 Javascript
用Vue.js实现监听属性的变化
Nov 17 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
Apr 12 Javascript
jQuery ajax请求struts action实现异步刷新
Apr 19 jQuery
JavaScript剩余操作符Rest Operator详解
Jul 20 Javascript
Vue基础配置讲解
Nov 29 Javascript
extjs4图表绘制之折线图实现方法分析
Mar 06 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
初探PHP5
2006/10/09 PHP
手把手教你使用DedeCms V3的在线采集图文教程
2007/04/03 PHP
解决PHP里大量数据循环时内存耗尽的方法
2015/10/10 PHP
PHP实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
jQuery中调用WebService方法小结
2011/03/28 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
nodejs中实现sleep功能实例
2015/03/24 NodeJs
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
Python实现Linux下守护进程的编写方法
2014/08/22 Python
python opencv之SIFT算法示例
2018/02/24 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
Python使用Pygame绘制时钟
2020/11/29 Python
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
大学生毕业自荐信
2013/10/10 职场文书
建筑班组长岗位职责
2014/01/02 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
运动会广播稿300字
2015/08/19 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书