react中路由重定向

简介: react中路由重定向

react中路由重定向

react路由重定向官方文档说明

render 属性:是一个函数prop,用于指定要渲染的内容

Redirect 组件用于实现路由重定向,to 属性指定要跳转到的路由地址

<Route exact path="/home" component={Index} />
<Route exact path="/" render={() => <Redirect to="/home" />} />

如下代码逻辑说明:

当进来到页面中是默认路由的时候,就进行一个路由的重定向,重定向到 /home路由

路由是home了那就匹配到Hoem组件。

import { BrowserRouter as Router, Route, Link,Redirect} from "react-router-dom";
import Home from "./pages/Home";
import CityList from "./pages/CityList";
function App() {
  return (
    <Router>
      <div className="App">
        {/* 默认路由,实现路由的重定向 */}
        <Route exact path="/" render={ ()=> <Redirect to="/home"/>}></Route>
        <Route path="/home" component={Home}></Route>
        <Route path="/citylist" component={CityList}></Route>
      </div>
    </Router>
  );
}
export default App;

Home组件代码,看路由跳转模块即可。路由是/home,那就接着匹配显示的组件

import React from "react";
import "./index.css";
import { Route } from "react-router-dom";
import { TabBar } from "antd-mobile";
// 组件
import Index from "../Index/index";
import List from "../List/index";
import News from "../News/index";
import My from "../My/index";
// 导航栏数据
const tabItems = [
  {
    title: "首页",
    icon: "icon-ind",
    path: "/home",
  },
  {
    title: "找房",
    icon: "icon-findHouse",
    path: "/home/list",
  },
  {
    title: "咨询",
    icon: "icon-infom",
    path: "/home/news",
  },
  {
    title: "我的",
    icon: "icon-my",
    path: "/home/my",
  },
];
class Home extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      selectedTab: this.props.location.pathname,
    };
  }
  renderTabItem = () => {
    return tabItems.map((item) => (
      <TabBar.Item
        title={item.title}
        key={item.title}
        icon={<i className={"iconfont " + item.icon} />}
        selectedIcon={<i className={`iconfont ${item.icon}`} />}
        selected={this.state.selectedTab === item.path}
        onPress={() => {
          this.setState({
            selectedTab: item.path,
          });
          this.props.history.push(item.path);
        }}
      ></TabBar.Item>
    ));
  };
  render() {
    return (
      <div className="home">
        {/* 当路由是/home时,匹配到了home组件,home组件里又匹配到了下面的路由,故展示 */}
        <Route exact path="/home" component={Index}></Route>
        <Route path="/home/list" component={List}></Route>
        <Route path="/home/news" component={News}></Route>
        <Route path="/home/my" component={My}></Route>
        <TabBar tintColor="#21b97a" barTintColor="white" noRenderContent>
          {this.renderTabItem()}
        </TabBar>
      </div>
    );
  }
}
export default Home;
相关文章
|
6月前
|
前端开发
第三十一章 React中路由组件和一般组件
第三十一章 React中路由组件和一般组件
|
6月前
|
JavaScript 前端开发
React 像 vue 一样配置页面路由,并支持重定向路由,路由守卫等(使用 useRoutes 完成)...
React 像 vue 一样配置页面路由,并支持重定向路由,路由守卫等(使用 useRoutes 完成)...
88 0
|
6月前
|
JavaScript 前端开发
React 像 vue 一样配置页面路由,并支持重定向路由,路由守卫等(使用 useRoutes 完成)
React 像 vue 一样配置页面路由,并支持重定向路由,路由守卫等(使用 useRoutes 完成)
57 0
|
JavaScript 前端开发
React 像 vue 一样配置页面路由,并支持重定向路由,路由守卫等(使用 useRoutes 完成)
React 像 vue 一样配置页面路由,并支持重定向路由,路由守卫等(使用 useRoutes 完成)
118 0
|
JavaScript API 容器
react-31-路由配置-重定向-404-嵌套路由
路由 是中大型项目不可或缺的 先做一些准备工作2个界面组件 ,便于路由跳转 熟悉一下路由基础
272 0
react-31-路由配置-重定向-404-嵌套路由
|
前端开发
React中路由切换动画
React中路由切换动画
178 0
|
前端开发
react实战笔记167:Redirct组件重定向
react实战笔记167:Redirct组件重定向
74 0
react实战笔记167:Redirct组件重定向
|
资源调度 前端开发 JavaScript
React全家桶:SPA--路由--路由组件和一般组件--NavLink组件--Switch--匹配模式--重定向--withRouter
React全家桶:SPA--路由--路由组件和一般组件--NavLink组件--Switch--匹配模式--重定向--withRouter
211 0
React全家桶:SPA--路由--路由组件和一般组件--NavLink组件--Switch--匹配模式--重定向--withRouter
|
前端开发 网络架构
React-25:React中路由的基本使用
React-25:React中路由的基本使用
119 0
React-25:React中路由的基本使用
|
前端开发
React-26:React中路由组件和一般组件的区别
React-26:React中路由组件和一般组件的区别
150 0
React-26:React中路由组件和一般组件的区别