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跨页面保存变量做菜单的方法
Jan 17 Javascript
jQuery地图map悬停显示省市代码分享
Aug 20 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
Sep 24 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
jquery实现具有嵌套功能的选项卡
Feb 12 Javascript
JavaScript必知必会(六) delete in instanceof
Jun 08 Javascript
微信小程序  modal详解及实例代码
Nov 09 Javascript
jQuery.validate.js表单验证插件的使用代码详解
Oct 22 jQuery
Vue2.0实现组件之间数据交互和通信操作示例
May 16 Javascript
微信小程序云开发之云函数详解
May 16 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
Apr 10 Javascript
javascript实现前端成语点击验证
Jun 24 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
深入了解php4(1)--回到未来
2006/10/09 PHP
在PWS上安装PHP4.0正式版
2006/10/09 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
简述php环境搭建与配置
2016/12/05 PHP
php数组指针操作详解
2017/02/14 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
2017/10/26 Javascript
vue中关闭eslint的方法分析
2018/08/04 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
Python内置函数 next的具体使用方法
2017/11/24 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
python实现二分查找算法
2020/09/18 Python
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
工商企业管理实习自我鉴定
2013/12/04 职场文书
公司企业表扬信
2014/01/11 职场文书
物业保安员岗位职责
2014/03/14 职场文书
葬礼主持词
2015/07/02 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL