react路由嵌套

react路由嵌套在config.js中添加配置项importTwofrom”../pages/Home/Two”importRecommendfrom”../pages/Recommend/Recemmend”;//导入组件letrouters=[{path:”/home”,//路由地址component:Home,//路由模板routes:[//路由嵌套配置路由嵌套不能使用精准匹配

大家好,又见面了,我是你们的朋友全栈君。

在config.js 中添加配置项

import Two from "../pages/Home/Two"
import Recommend from "../pages/Recommend/Recemmend";  //导入组件

let routers = [
    {
        path: "/home",   //路由地址
        component: Home,    //路由模板   
        routes: [    //路由嵌套  配置路由嵌套不能使用精准匹配
            {
                path: "/home/recommend",
                component: Recommend,
                exact: true,   //精准匹配
            },
            {
                path: "/home/ranking",
                component: System,
                exact: true,
            },
            {
                path: "/home/two",
                component: Two,
                exact: true,
            },
        ]
    },
    {
        path: "/about",
        component: About,
        exact: true
    },
    {
        path: "/",
        redirect: "/home",   //重定向
    }
]

export default routers;

将配置文件导入到路由组件 index.js


import React, { Component } from 'react';
import { Switch, Route, Redirect } from "react-router-dom";  
import routers from "./config";  //配置文件

class Router extends Component {
    render() {
        return (
            <Switch>
                {routers.map((value, index) => {  //映射注入Route组件中
                    if (!value.redirect) {   //需要重定型执行写下面代码
                        return (
                            <Route key={index} exact={value.exact} path={value.path} component={props => <value.component {...props} routes={value.routes} />} ></Route>
                            //如果有路由嵌套,则将路由签到传递到组件的props中,在传递的组件中再次进行路由配置
                        
                        )
                    } else {
                        return (
                            <Redirect key={index} from={value.path} to={value.redirect}></Redirect>
                            //重定向
                        )
                    }
                })}
            </Switch>
        );
    }
}

export default Router; 将文件导注入到app.js中

app.js

import './App.css';
import React, { Component } from 'react';
import RouterView from './router/index';
class App extends Component {
  render() {
    return (
      <div>
      //将组件使用在app.js中
        <RouterView></RouterView>
      </div>
    );
  }
}

export default App;

在路由嵌套的Home页面中再次配置路由组件;


 render() {
console.log(this.props.routes)   //路由嵌套的配置规则
        return (
            <div className="Home-box">
                <Switch>
                //再次添加路由组件实现路由嵌套
                    {this.props.routes.map((value, index) => <Route key={index} path={value.path} exact={value.exact} component={value.component}></Route>)}
                </Switch>
            </div>
        );
    }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131483.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于c#中的dialogresult

    关于c#中的dialogresult
    在botton里面设置dialogresult为ok的时候,按下按钮窗口会自然关闭,这是由于窗口时模态显示的原因
    这种方式多用于设置对话框吧。。。
    但是更多时候必须判断对话框里里的输入是否有效或者其他一些判断
    所以不推荐奖button的dialogresult属性直接设置为ok
    而是动态用代码实现,但条件成立的时候写上
    this.DialogResult=DialogResult.ok;
    这样可以避免一些异常的捕捉和判断。。。

    2022年6月22日
  • c/c++常见面试题

    1.C中static有什么作用(1)隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命

    2021年12月27日
  • 对于正则化的理解

    对于正则化的理解

    2021年11月19日
  • 3.5使用RangeValidator控件

    3.5使用RangeValidator控件使用RangeValidator控件检测表单字段的值是否在指定的最小值和最大值之间五个属性:ControlToValidate—被验证的表单字段的IDText--验证失败时显示的错误信息MininumValueMaxinumValueType-比较类型:String,Integer,Double,Date和Currency默认为String[code…

    2022年7月14日
  • msfconsole攻击工具_服务器console接口是干嘛的

    msfconsole攻击工具_服务器console接口是干嘛的?Msfconsole工具概括:???Msfconsole简称(msf)是一款常用的渗透测试工具,包含了常见的漏洞利用模块和生成各种木马,方便于安全测试人员的使用.(1)进行端口扫描.(2)进行服务的扫描.(3)扫描3306(Mysql)端口的弱口令.(4)在msf模块里也可以使用nmap进行扫描.(5)扫描了服务器是用WinXP,然后对服务器进行渗透测试.

    2022年9月7日
  • Mongo散记–聚合(aggregation)&amp; 查询(Query)

    Mongo散记–聚合(aggregation)&amp; 查询(Query)

    2021年12月3日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号