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 Keycode对照表
Oct 24 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
Mar 13 Javascript
JavaScript开发者必备的10个Sublime Text插件
Feb 27 Javascript
浅析Bootstrap缩略图组件与警示框组件
Apr 29 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
May 09 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
Node.js 日志处理模块log4js
Aug 28 Javascript
js无提示关闭浏览器窗口的两种方法分析
Nov 06 Javascript
JavaScript屏蔽Backspace键的实现代码
Nov 02 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
Jan 31 Javascript
Vue.js中的组件系统
May 30 Javascript
layui 解决富文本框form表单提交为空的问题
Oct 26 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
Ajax PHP分页演示
2007/01/02 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
PHP静态成员变量
2017/02/14 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
2014/09/04 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
JavaScript中定义函数的三种方法
2015/03/12 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
Vuex的初探与实战小结
2018/11/26 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
2020/09/21 Javascript
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
python如何实现数据的线性拟合
2019/07/19 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
pycharm 快速解决python代码冲突的问题
2021/01/15 Python
Python与C/C++的相互调用案例
2021/03/04 Python
人事部主管岗位职责
2013/12/26 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
学校四群教育实施方案
2014/06/12 职场文书
金融管理专业求职信
2014/07/10 职场文书
运动会通讯稿50字
2015/07/20 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang