【react-router】Redirect组件

import React from "react";
import {
  BrowserRouter as Router,
  Route,
  Link,
  Redirect
} from "react-router-dom";

export default function App() {
  return (
        <Router>
        <ul>
            <li><Link to="/home">Home</Link></li>
            <li><Link to="/about">About</Link></li>
            <li><Link to="/users">Users</Link></li>
        </ul>
        <Redirect from="/" to="/home"/>
        <Route path="/about"><About/></Route>
        <Route path="/users"><Users/></Route>
        <Route path="/home"><Home/></Route>
        </Router>
  );
}

function Home(){
    return <h2>Home</h2>
}

function About() {
  return <h2>About</h2>;
}

function Users() {
  return <h2>Users</h2>;
}

<Redirect to/>
to属性既可以是一个字符串,也可以是一个对象。

  • to属性是一个字符串
<Router>
    <ul>
        <li><Link to="/home">Home</Link></li>
        <li><Link to="/about">About</Link></li>
        <li><Link to="/users">Users</Link></li>
    </ul>
    <Redirect from="/" to="/home"/>
    <Route path="/about"><About/></Route>
    <Route path="/users"><Users/></Route>
    <Route path="/home"><Home/></Route>
</Router>

或者

<Router>
    <ul>
        <li><Link to="/home">Home</Link></li>
        <li><Link to="/about">About</Link></li>
        <li><Link to="/users">Users</Link></li>
    </ul>

    <Route path="/about"><About/></Route>
    <Route path="/users"><Users/></Route>
    <Route path="/home"><Home/></Route>
    <Route path="/">
        <Redirect to="/home"/>
    </Route>
</Router>
  • to属性是一个对象
import React from "react";
import {
  BrowserRouter as Router,
  Route,
  Link,
  Redirect,
  useLocation
} from "react-router-dom";

export default function App() {
  return (
    <Router>
        <ul>
            <li><Link to="/home">Home</Link></li>
            <li><Link to="/about">About</Link></li>
            <li><Link to="/users">Users</Link></li>
        </ul>
        <Redirect from="/" 
                to={{
                    pathname:"/home",
                    state:{
                        from:"/"
                    },
                    a:{
                        b:"hellow world"
                    }
                }}/>
        <Route path="/about"><About/></Route>
        <Route path="/users"><Users/></Route>
        <Route path="/home"><Home/></Route>
    </Router>
  );
}

function Home(){
    const location = useLocation();
    console.log(location);
    return <h2>Home</h2>
}

function About() {
  return <h2>About</h2>;
}

function Users() {
  return <h2>Users</h2>;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值