react动态二级/三级路由操作

一级路由就不写了,比较简单,下面是在一级页面mvvm中进行写入二级及三级路由页面

app.js中进行路由配置

 <Route exact path={"/mvvm"} component={Mvvm} />
 <Route exact path={`/mvvm/:page`} component={Mvvm} />
  <Route path={`/mvvm/:page/:id`} component={Mvvm} />

开始配置二级路由

import React, { Component } from 'react';
import Header from "../../components/Header"
import {observer,inject} from 'mobx-react';
import Vue from "./vue";
import Rreact from "./rreact";
import Ng from "./ng";
import { withRouter,NavLink,Switch,Redirect,Route} from 'react-router-dom';
@withRouter
@inject('first')
@observer

class index extends Component {
  constructor(props){
    super(props)
    this.state={
      current: 1,
    }
  }
    ifPage(params) {
        switch (params.page) {
          case "vue":
            return <Vue page={params.page}>vue</Vue>;
          case "rreact":
            return <Rreact>react</Rreact>
          case "ng":
            return <Ng>ng</Ng>
          default:
            return <ul>
                <li><NavLink to="/mvvm/vue">vue</NavLink></li>
                <li><NavLink to="/mvvm/rreact">react</NavLink></li> 
                <li><NavLink to="/mvvm/ng">Ng</NavLink></li>
            </ul>
            
        }
      }
      handleTab(index) {
        this.setState({
        });
        console.log(index + "1214");
      }
    render() {
        console.log(this.props.first)
        console.log(this.props);
        const { match } = this.props;
        return (
            <div>
                <Header/>
                <div className="mv_head">
                    {this.ifPage(match.params)}
                </div>
                    </div>
            </div>
        );
    }
} 

export default index;

配置三级路由

在上面代码中创建了三个二级路由页面然后下面再二级vue页面中操作三级路由页面

import React, { Component } from 'react';
import Vues from "./vues"
import { withRouter,NavLink,Switch,Redirect,Route,Link} from 'react-router-dom';
class vue extends Component {
    ifPage(params) {
        switch (params.id) {
          case "vues":
            return <Vues id={params.id}>vue</Vues>;
        
          default:
            return <ul>
                <NavLink to="/mvvm/vue/vues">vue二级</NavLink>
            </ul>
        }
      }
    render() {
        return (
                <p>{this.ifPage(this.props.match.params)}
                </p>

        );
    }
}

export default withRouter(vue);

文档结构

在这里插入图片描述
mvvm一级路由
vue/rreact/ng二级路由
vues是vue的三级路由

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上流星&洒下星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值