封装react 路由高效开发

基本使用

下载:

npm install -S react-router

使用的时候路由器router就是react的一个组件

import { Router } from 'react-router';
render(<Router/>, document.getElementById('app'));

第一步:
创建router目录 index.js
react-router-dom
index.js :

import React from 'react'
import { Switch, Route, Redirect } from 'react-router-dom'
//  Switch需要包括住入口  Route 入口处  Redirect重定向

const Roudes = (props) => {
    // 解刨数据
    // 组件
    let com = props.roudes.filter((item) => item.component)
    // 重定向
    let Red = props.roudes.filter((item) => item.Redirect)
    return <Switch>
        {
        //循环渲染抛离出来的数据
            com.map((item, index) => {
                return <Route
                // key就是唯一值,这个不用多做介绍
                    key={index}
                    // path 是我们的路由路径
                    path={item.path}
                    // render 的作用就是页面绑定上去  把二级路由利用在组件上利用props 发到下一层
                    render={(props) => {
                        return <item.component {...props} roudes={item.children}></item.component>
                    }}
                ></Route>// render 将数据传入下一层
            })
        }
        {
            // 设定重定向
            Red.map((item) => {
                return <Redirect to={item.Redirect} from={item.path} key={item.path}></Redirect>
            })
        }
    </Switch>
}

export default Roudes;

第二步:
routerConfig.js因为文件,写好可用的数据:


const routerConfig=[
    {
        path:"/home",
        component:Home
    },{
        path:'/cart',
        component:Cart
    },{
        path:'/my',
        component:My
    },{
        path:'/',
        Redirect:'/home'
    }
]
export default routerConfig;

第三步:
在app.js写好出口:

import React, { Component } from 'react' // 引入react
import Router from './router/index' // 引入写好的router入口
import routerConfig from './router/routerConfig'// 引入写好的数据
import { BrowserRouter, NavLink } from 'react-router-dom'// 引入 router的框架
import './App.scss'// 公用数据

export default class App extends Component {
    render() {
        return (
            <div className='App'>
            // BrowserRouter保住所有的路由
                <BrowserRouter>
                    <main>
                    // 路由出口 挂载routerConfig数据 roudes传递到下一层
                        <Router roudes={routerConfig}></Router>
                    </main>
                </BrowserRouter>
            </div>
        )
    }
}

这个是一级路由的出口,二级路由也必须有出口,在二级页码需要写出口的位置


       import Router from '../../../router/index' // 引入写好的router出口
       
        {
          // router二级出口
        }
         <Router roudes={this.props.roudes}></Router>

这样一个封装好的react-router-dom就封装完了,我们就可以使用router入口进行页面的跳转了

import { Link } from 'react-router-dom' // 路由入口
// to标题是要跳转到的位置
<Link to='/home'></Link>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值