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和Ajax中文乱码吐血版解决方案
Dec 21 Javascript
jquery插件开发之实现jquery手风琴功能分享
Mar 10 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
Jan 20 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
jQuery中JSONP的两种实现方式详解
Sep 26 Javascript
微信小程序本作用域下调用全局JS详解及实例
Feb 22 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
Dec 26 Javascript
如何为你的JS项目添加智能提示与类型检查详解
Mar 12 Javascript
微信小程序 Storage更新详解
Jul 16 Javascript
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
微信小程序新闻网站详情页实例代码
Jan 10 Javascript
js基于div丝滑实现贝塞尔曲线
Sep 23 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生成QRcode实例
2014/09/22 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
php微信公众号开发之现金红包
2018/04/16 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
javascript 实现map集合
2015/04/03 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
canvas轨迹回放功能实现
2017/12/20 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
vue中的inject学习教程
2019/04/24 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
python爬取微博评论的实例讲解
2021/01/15 Python
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
移动通信行业实习自我鉴定
2013/09/28 职场文书
大一自我鉴定范文
2013/10/04 职场文书
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
慈善晚会策划方案
2014/05/14 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
给朋友的道歉短信
2015/05/12 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书
Python提取PDF指定内容并生成新文件
2021/06/09 Python
浅析MongoDB之安全认证
2021/06/26 MongoDB