加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react默认路由嵌套子路由

发布时间:2020-12-15 06:53:55 所属栏目:百科 来源:网络整理
导读:import React from 'react'import { Router,Redirect,Route,IndexRoute,browserHistory,hashHistory } from 'react-router'import App from '../containers/App'import Home from '../containers/Home'import Phone from '../containers/phone/phone'import
import React from 'react'
import { Router,Redirect,Route,IndexRoute,browserHistory,hashHistory } from 'react-router'


import App from '../containers/App'
import Home from '../containers/Home'
import Phone from '../containers/phone/phone'
import Ditu from '../containers/Ditu/Ditu'
import Anli from '../containers/Anli/Anli'
import HomeIndex from '../containers/homeIndex/HomeIndex'
import List from '../containers/List'
import Detail from '../containers/Detail'
import About from '../containers/about/About'
import News from '../containers/news/News'
import Team from '../containers/Team/Team'
import NotFound from '../containers/NotFound'


class RouteMap extends React.Component {
    render() {
        return (
             <Router history={browserHistory}>
                <Redirect from="/" to="/HomeIndex" />
                <Route path='/' component={App}>
                    <Route path='/HomeIndex' component={Home}>
                        <IndexRoute component={HomeIndex}/>
                        <Route path='/Home/About' component={About}/>
                        <Route path='/Home/News' component={News}/>
                        <Route path='/Home/Team' component={Team}/>
                    </Route>
                    <Route path='/list' component={List}/>
                    <Route path='/Phone' component={Phone}>
                    </Route>
                    <Route path='/Ditu' component={Ditu}/>
                    <Route path='/Anli' component={Anli}/>
                    <Route path='/detail/:id' component={Detail}/>
                    <Route path="*" component={NotFound}/>
                </Route>
            </Router>
        )
    }
}


export default RouteMap
总入口路由:
<div className="footer borderTop">
	            	<Link to="/HomeIndex" activeClassName="routerActive" className="footerRouter">
	            		<span className="bar1"></span>
	            		首页
	            	</Link>
	            	<Link to="/Phone"  activeClassName="routerActive" className="footerRouter">
	            		<span className="bar2"></span>
	            		电话
	            	</Link>
	            	<Link to="/Ditu"  activeClassName="routerActive" className="footerRouter">
	            		<span className="bar3"></span>
	            		地图
	            	</Link>
	            	<Link to="/Anli"  activeClassName="routerActive" className="footerRouter">
	            		<span className="bar4"></span>
	            		案例
	            	</Link>
	            </div>
首页子路由:
import React from 'react'
import { Link,IndexLink } from 'react-router'
import { browserHistory } from 'react-router'
import Banner from '../../contents/banner/Banner'


class HomeIndex extends React.Component {
    render() {
        return (
            <div className="content">
                <Banner/>
                <div className="navUl">
	            	<Link to="/Home/About" className="navList">
	            		<span className="bar1"></span>
	            		关于我们
	            	</Link>
	            	<Link to="/Home/News" className="navList">
	            		<span className="bar2"></span>
	            		家装新闻
	            	</Link>
	            	<Link to="/Anli" className="navList">
	            		<span className="bar3"></span>
	            		案例展示
	            	</Link>
	            	<Link to="/Home/Team" className="navList">
	            		<span className="bar4"></span>
	            		设计团队
	            	</Link>
	            </div>
            </div>
        )
    }
}


export default HomeIndex
home文件:
import React from 'react'
import { browserHistory } from 'react-router'


class Home extends React.Component {
    render() {
        return (
            <div>
                {this.props.children}
            </div>
        )
    }
}
export default Home
原理就是让home父组件作为一个容器,在其中一个子页面完成跳转
IndexRoute使用这个之后如果想在默认的路由下面嵌套子路由,会发现点击跳转后默认的路由失去了active状态,所以现在不使用这个了。直接利用react的路由重定向,将默认地址指向
需要展示的首页。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读