有两种页面,一种是有TabBar的页面,如下图; 一种是无TabBar的页面

react嵌套路由实现TabBar的实现

有TabBar的页面使用嵌套路由来实现

嵌套路由:路由内部包含路由

使用步骤

1 在pages文件夹创建News/index.js组件(子路由要展示的内容)

import React from "react"
export default class News extends React.Component{
    render(){
        return <div style={{background:'yellow',padding:10}}>
            这是news组件的内容,是子路由的内容</div>
    }
 
}

2 在Home组件中,添加一个Route作为子路由(嵌套路由)的出口

3 设置嵌套路由的path,格式以父路由path开头(父组件展示、子组件才会展示)

Home/index.js

import React from "react"
 
//导入路由
import {Route} from "react-router-dom"
//导入News组件
import News from "../News/index"
 
export default class Home extends React.Component {
    render() {
        return <div style={{background:'skyblue',padding:10}}>
            首页页面
            {/*渲染子路由*/}
            <Route path="/home/news" component={News}></Route>
        </div>
    }
 
}

父路由的path是"/home"

react嵌套路由实现TabBar的实现

 子路由的path是"/home/news"

 效果

地址栏路径的pathname为父路由

react嵌套路由实现TabBar的实现

 修改地址栏路径的pathname为子路由

react嵌套路由实现TabBar的实现

 备注:蓝色部分就是父路由Home,黄色部分就是子路由news (父路由嵌套着子路由)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。