本章节主要讲解一种后台实现React-router配置的实现方案。 react-router官方文档 。
一、骨架初始化
由于React没有像Vue那样将Router单独进行封装。所以使用React进行开发时,Router的实现方案最好也用专门的路由文件进行管理,不然route要是散落在每个业务组件中,对于代码维护成本是极高的。下面我们讲解一种后台管理系统比较常见的Menu菜单和Route搭配使用的方案。
安装react-router-dom,是基于react-router操作dom实现一个路由库。
yarn react-router-dom
然后在根组件app.tsx中使用Router包裹项目骨架层。
// App.tsx import { HashRouter as Router } from 'react-router-dom' function App() { return ( <div className="App"> <Router> <BaseLayout/> </Router> </div> ); }
接下来我们使用antd中的Layout组件实现页面基本骨架,包括Header、Navside、Content基本结构。
// BaseLayout.tsx class BaseLayout extends React.Component<object, object> { render() { return ( <Layout className="main"> <Layout.Header className="main-header"><Header/></Layout.Header> <Layout className="main-content"> <Navside/> <Layout.Content><Routes/></Layout.Content> </Layout> </Layout> ) } }
接下来我们只需要封装两个组件。Navside菜单栏,控制路由跳转;Routes动态匹配路由,渲染当前组件。
二、全局router文件
我们先在src下新建router文件夹,新建index.tsx文件存放页面路由信息:
const Routes: MenuItem[] = [ { key: '/main/index', title: '首页', icon: 'bank', component: 'HomeData' }, { key: '/main/table', title: '表格', icon: 'book', component: 'BaseTable' }, { key: '/main/message', title: '消息', icon: 'bulb', component: 'Messsage' }, { key: '/main/auth', title: '权限', icon: 'bug', component: 'Auth' }, { key: '/main/staff', title: '员工', icon: 'audio', component: 'Staff' }, { key: '/main/setting' , title: '设置' , icon: 'rocket' , subs: [ { key: '/main/setting/usercenter' , title: '个人中心' , component: 'Usercenter' , }, { key: '/main/setting/expand' , title: '功能扩展' , component: 'Expand' , }, ], }, ]View Code
查看更多关于从零搭建React+TypeScript的后台项目(二)的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did223470