IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> react动态路由的使用,二级三级页面的实际应用 -> 正文阅读

[JavaScript知识库]react动态路由的使用,二级三级页面的实际应用

这个只有粉丝能看,所以知道啥意思就行,组件名,大解释什么的就不改了。(不要问为什么,懒!)

先说一下需求:首页跳到列表页,列表页里面有通过页面和未通过页面,还有一个其他页面。通过页面里有一个通过详情页,未通过里只显示未通过信息,其他页面里有两个选项,可以跳到选项一和选项二页面。

注意:第三方页面使用路由信息用withRouter,路由信息match方法。打印match可以给你帮助

这里写一下地址栏的需求:

list                     列表页
list/tong                列表通过页
list/tong/tongdetail     通过的详情页
list/notong??            未通过页
list/qita                其他页面
list/qita/qi1            其他一页面
list/qita/qi2            其他二页面

App.js路由配置

<Route exact path="/list" component={Ce} />
<Route exact path={`/list/:page`} component={Ce} />
<Route path={`/list/:page/:id`} component={Ce} />

先说一下list页面,我定义的是 ceshi.jsx: To为通过页,Bu为未通过页,Qi为其他页面

不通过页面什么都没有,随意写。下面继续写通过和其他页面代码

import React, { Component } from 'react';
import To from './tong.jsx'
import Bu from './bu.jsx'
import Qi from './Qi'
import { NavLink } from 'react-router-dom';

class View extends Component {
    constructor(props) {
        super(props)
        this.state = {
        }
    }
    ifPage(params) {
        switch (params.page) {
            case 'tg':
                return <To id={params.id} />
            case 'ntg':
                return <Bu />
            case 'qi':
                return <Qi />
            default:
                return (
                    <div>
                        <h3>这是list页面</h3>
                        <NavLink to='list/tg'>通过</NavLink>
                        <br />
                        <NavLink to='list/ntg'>不通过</NavLink>
                        <br />
                        <NavLink to='list/qi'>进入其他页面</NavLink>
                    </div>
                )
        }
    }
    render() {
        const { match } = this.props
        // console.log(match)
        return (
            <React.Fragment>

                {this.ifPage(match.params)}

            </React.Fragment>
        );
    }
}

export default View;

通过页:我定义为tong.jsx:在此地址栏下后续任意输入都将跳到通过详情页。

详情页代码什么也没有,自己随意定义

import React, { Component } from 'react';
import { withRouter } from 'react-router-dom';
import TD from './tongdetail'
class tong extends Component {
    constructor(props) {
        super(props)
    }

    ifPage(id) {
        if (id) {
            return <TD id={id} />
        } else {
            return <div>这是:通过页面</div>
        }
    }
    render() {
        return (
            <React.Fragment>
                {this.ifPage(this.props.id)}
            </React.Fragment>
        );
    }
}

export default withRouter(tong);

?接下来就是其他页面,里面有两个导航跳向其他一,其他二。那两个页面也是自己随意定义

import React, { Component } from 'react';
import { withRouter, NavLink } from 'react-router-dom';
import Qa from './Qi1'
import Qb from './Qi2'

class Q extends Component {
    constructor(props) {
        super(props)
        this.state = {

        }
    }
    ifPage(params) {
        // console.log(params)
        switch (params.id) {
            case 'qa':
                return <Qa id={params.id}></Qa>
            case 'qb':
                return <Qb></Qb>
            default:
                return (
                    <div>
                        <div>这是其他页面,里面有俩选项页面</div>
                        <NavLink to='qi/qa'>去one</NavLink>
                        <br />
                        <NavLink to='qi/qb'>去two</NavLink>
                    </div>
                )
        }
    }
    render() {
        const { match } = this.props
        // console.log(match)
        return (
            <div>
                {this.ifPage(match.params)}
            </div>
        );
    }
}

export default withRouter(Q);

?这样一个动态二级三级就可以实现啦。后续自己添加可以根据代码改动

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 17:21:08  更:2021-08-03 17:21:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/22 2:13:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码