美文网首页
三、路由配置

三、路由配置

作者: fanren | 来源:发表于2021-06-16 10:38 被阅读0次

1. 代码

  • RouteWithSubRoute.js:工具类
import React, { Component } from "react";
import { Route } from "react-router-dom";

function RouteWithSubRoute(route) {
    return (
        <Route path={route.path} render={ props => (
            <route.component {...props} routes={route.routes}></route.component>
        )}>
        </Route>
    )
}

export default RouteWithSubRoute;
  • App.js:主页,路由配置页面
import React, { Component } from "react";
import { BrowserRouter as Router, Switch, Link } from "react-router-dom";

import User from "./views/User";
import Home from "./views/Home";
import Passord from './views/Passord';
import Userinfo from './views/Userinfo';
import RouteWithSubRoute from './RouteWithSubRoute';

const routes = [
  {
    path: '/home',
    component: Home
  },
  {
    path: '/user',
    component: User,
    routes: [
      {
        path: '/user/password',
        component: Passord
      },
      {
        path: '/user/userinfo',
        component: Userinfo
      }
    ]
  }
];

class App extends Component {
  render() {
    return (
      <Router>
        <div style={{padding: 20}}>
          <nav>
            <ul>
              <li>
                <Link to="/home">Home</Link>
              </li>
              <li>
                <Link to="/user">Users</Link>
              </li>
            </ul>
          </nav>
          <Switch>
            {
              routes.map((route, i) => (
                <RouteWithSubRoute key={i} {...route}></RouteWithSubRoute>
              ))
            }
          </Switch>
        </div>
      </Router>
    );
  }
}

export default App;
  • User.js
import React, { Component } from "react";
import { Switch, Link } from "react-router-dom";
import RouteWithSubRoute from '../RouteWithSubRoute';

class User extends Component {
  render() {
    let routes = this.props.routes;
    return (
      <div style={{ padding: 20 }}>
        <h2>用户</h2>
        <nav>
          <ul>
            <li>
              <Link to={`/user/password`}>设置密码</Link>
            </li>
            <li>
              <Link to={`/user/userinfo`}>个人信息</Link>
            </li>
          </ul>
        </nav>
        <Switch>
            {
              routes.map((route, i) => (
                <RouteWithSubRoute key={i} {...route}></RouteWithSubRoute>
              ))
            }
        </Switch>
      </div>
    );
  }
}

export default User;

路由配置功能,其实就是对路由功能的进一步封装;把以前静态在代码写死的路由配置,单独提出来,把所有的路由放到一个单独的配置文件中;

相关文章

  • vue-router配置笔记

    路由的配置 二、动态路由传参1.配置动态路由 2.在对应的页面 三、get传值

  • HCNA学习笔记(六) 路由协议基础

    路由信息产生 三种方式:设备自动发现,手工配置,通过动态路由协议生成设备自动发现的路由信息——直连路由;手工配置的...

  • cisco Switching-三层交换配置RIP动态路由

    问题 在三层交换机上配置RIP路由协议,以三层交换机代替路由器。 通过RIP实现路由间通信 方案 动态路由协议配置...

  • 计算机网络: Lab 2

    初始化路由器 初始化如下图的路由器。 显示配置好的信息 配置路由器里的路由表 路由的配置重要参数有三个:目的地 I...

  • 静态路由配置(HCNA网络技术实验指南)

    静态路由配置 1、实验要求:PC1和PC2之间有三台路由器,需要在三台路由器上配置静态路由,确保PC1可以ping...

  • 艾达智能语音网关配置

    艾达智能语音网关配置 三汇网关模拟配置 一. 网关IP的配置 获得路由器IP地址默认网关是连接路由器的, 路由器地...

  • 三、路由配置

    1. 代码 RouteWithSubRoute.js:工具类 App.js:主页,路由配置页面 User.js 路...

  • Vue路由

    一、Vue路由基础用法: 二、Vue路由配置的抽出 三、路由动态传值: 四、路由的跳转方式: 五、路由的hash模...

  • D-25操作系统基础网络章节

    一、学习网络知识方法 1.掌握基础部分 路由: 路由基础配置 路由配置(RIP OSPF BGP) 路由安全配置(...

  • Django实现MySQL读写分离

    一、setting的配置 二、创建数据库读写路由,在common/db_route.py中实现读写路由 三、配置数...

网友评论

      本文标题:三、路由配置

      本文链接:https://www.haomeiwen.com/subject/gsoeeltx.html