【react】 react---项目的-----------简单路由配置
pages>index.js (路由的懒加载)
1 //路由的懒加载 2 import Loadable from "react-loadable" 3 import Loading from "../common/loading" 4 5 const Home = Loadable({ 6 loader:()=>import("./home"), 7 loading:Loading 8 }) 9 10 const List = Loadable({ 11 loader:()=>import("./list"), 12 loading:Loading 13 }) 14 15 const Login = Loadable({ 16 loader:()=>import("./login"), 17 loading:Loading 18 }) 19 20 const Mine = Loadable({ 21 loader:()=>import("./mine"), 22 loading:Loading 23 }) 24 25 const Order = Loadable({ 26 loader:()=>import("./order"), 27 loading:Loading 28 }) 29 30 31 const INow = Loadable({ 32 loader:()=>import("../components/iNow"), 33 loading:Loading 34 }) 35 36 37 const Comming = Loadable({ 38 loader:()=>import("../components/comming"), 39 loading:Loading 40 }) 41 42 43 export { 44 Home, 45 List, 46 Login, 47 Mine, 48 Order, 49 INow, 50 Comming 51 }
router》index.js 路由的配置表
import {Home,List,Login,Mine,Order,INow,Comming } from "../pages"//路由配置表//tabBar 的路由数组 export const TabBarRoutes = [ {id:1,path:"/home",icon:"\ue717",name:"首页",component:Home,meta:{auth:false},children:[ //二级路由 {path:"/home/iNow",component:INow,name:"正在热映",},{path:"/home/comming",component:Comming,name:"即将上映",}]},{key:2,path:"/list",icon:"\ue61d",name:"列表",component:List,meta:{auth:false}},{key:3,path:"/order",icon:"\ue605",name:"订单",component:Order,meta:{auth:true}},{key:4,path:"/mine",icon:"\ue613",name:"我的",component:Mine,meta:{auth:true}} ]//没有tabBar的路由数组 export const NoTabBarRoutes = [{key:5,path:"/login",icon:"",name:"登陆",component:Login,} ]//数组的拼接,导出 //baseRoutes 是数组对象[{},{},{}] export const baseRoutes = TabBarRoutes.concat(NoTabBarRoutes)
封装的方法解析,
utils>routerEach.js //代码解析, 函数套函数,子函数执行来自 item
utils>routerEach.js 代码:
1 import React, { Fragment } from "react"; //jsx语法 2 import { Route, Redirect, Switch } from "react-router-dom"; //用到路由的 3 //一个函数,通过入与出 达到渲染的目的 4 export default (routes) => { //传入的是一个数组对象,每一个对象都是一个路由的配置项 5 //专门用来遍历子路由 //可以说二级路由的... 6 let routeEach = (item) => { 7 return <Route path={item.path} render={() => { //item.path 是路径,return返回的是一个jsx 8 return ( 9 <Fragment> // Fragment, 是react的内置组件,不会渲染,因为return返回的是一个jsx 对象 10 <Route component={item.component} /> //这样是匹配任意,渲染任意 11 <Redirect from={item.path} to={item.children[0].path} />//路由的重定向 12 <Switch> //作用是只匹配一个路由 13 { //子路由的遍历 14 item.children.map((child, index) => {//child是每个元素的意思,index,数组下标 15 if (child.children) { //这个的意思是,判断子路由下面还会不会有路由, 16 return routeEach(child) //把这个子路由返回传入进入,,再次遍历执行渲染 17 } else { //如果没有 18 return <Route path={child.path} key={index} component={child.component} /> 19 } 20 }) 21 } 22 </Switch> 23 </Fragment> 24 ) 25 }} /> 26 } 27 28 //这个是通过map 遍历渲染 29 return routes.map((item, index) => { //先执行这块代码? 30 if (item.children) { //当存在为真的时候,就会去执行上面的代码块 31 return routeEach(item); 32 } else { 33 return <Route path={item.path} key={index} component={item.component} /> 34 } 35 }) 36 } 37 38 39 /* 40 41 Fragment 42 react的内置组件 43 44 用来当做容器进行使用,特点是不会被渲染到页面上 45 46 47 这文件的封装思路是,通过传入数组对象(路由配置),然后导出匹配完好的 路由配置 48 49 <Route path="/detail" render={() => { return <Detail /> }} /> 50 51 52 53 54 这个文件是这样去走的: 55 56 */
// tabBar 的创建及使用
tabBar的样式
转载于:https://www.cnblogs.com/yuanjili666/p/11556191.html
【react】 react---项目的-----------简单路由配置相关推荐
- C# MVC 项目下的路由配置-RouteConfig
C# MVC 项目下的路由配置-RouteConfig 1. 设置备份全局路径下的路由 目的,我们在网站中域名后面输入参数,可以跳转到相应的controller,例如:www.innovsys.cn/ ...
- SpringCloud 微服务网关Gateway介绍及简单路由配置
概述:什么是微服务网关?为了解决用户客户端在调用微服务系统中的多个消费者工程接口时,需要维护非常多的消费者应用接口地址等信息,以及可能存在不同应用见的调用跨域等问题,微服务网关组件随即出现.网关作为用 ...
- vscode 连接夜神模拟器 运行 react native项目 (很简单的方法)
前言:我这种方式不需要过多配置,只是需要先启动Android studio ,之后再启动vsCode 准备阶段:下载夜神模拟器 1. 开启夜神服务 进入到夜神安装的bin目录下,执行 nox_adb. ...
- php zend 自动补全,Zend Framework自动加载、简单路由配置(Bootstrap.php)
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { /* * 自动加载 */ protected function _init ...
- Taro+react开发(83):taro路由配置
- 从零开始搭建React开发项目之抖音“剪映”——创作课堂(基础入门篇)
前言 React是近几年来前端项目开发非常火的一个框架,其背景是Facebook团队的技术支持,市场占有率也很高,对于很多新手来说可能很多人都在犹豫是选react还是vue,如果时间充裕的话还是首选r ...
- centos 重启网卡_CentOS6 网络管理之网卡配置及简单路由设置
CentOS6中关于网络配置的命令有很多,本文将介绍几个平时最长用的几个命令,以及网卡IP地址的配置和简单路由配置. 1.经常使用的查看IP地址命令为 ifconfig,不跟参数的情况下默认查看所有已 ...
- SpringCloud 微服务网关Gateway 动态路由配置
概述:在上一章节<SpringCloud 微服务网关Gateway介绍及简单路由配置>中我们讲述了Gateway的最简单的路由配置方式.但是其中比较明显的问题就是我们在配置路由服务的地址时 ...
- React+TS学习和使用(三):React Redux和项目的路由配置
开启学习react+ts,本篇主要是学习使用React Redux和项目的路由配置 一.React Redux 需求:使用TS+React Redux实现一个累加. A. 安装 $ yarn add ...
最新文章
- android餐厅管理系统,基于Android的餐厅管理系统的设计与实现
- 1019 General Palindromic Number (20分)_18行代码AC
- 基础概念总结(spring security、Quartz、JUnit测试)
- Android开发之EditText输入显示文字hint大小设置
- 前端学习(3025):vue+element今日头条管理-关于默认子路由的问题
- Android中的动画有哪几类?各自的特点和区别是什么?
- 002---设计表结构
- 一本通1613打印文章
- 开放源代码_您对开放源代码感兴趣了多少年?
- .NET Core 3.0 稳定版发布
- 将 React 作为 UI 运行时
- Leetcode143. 重排链表 (golang描述)
- serve注解是加在哪个类_PHP 8新特性之Attributes(注解)
- 神经网络常用激活函数总结
- MFC SetTimer函数的用法
- Java简单聊天室Socket服务器客户程序
- 盖茨、马斯克都遵循的学习法则:知识不由学科划分
- 安装CHD走过的一些坑
- 中医针灸学综合练习题库【12】
- python动态监控日志内容
热门文章
- oracle 删除jobs日志,修改Oracle的Job Scheduler 日志级别及删除运行日志
- 目标检测(二十二)--R-FCN
- 基础接口 java_java基础中的 接口方法的问题
- idea报错Cannot resolve jdk.tools:jdk.tools:1.7
- 远程连接hive报错
- Confluence 6 教程:在 Confluence 中导航
- postMessage可太有用了
- 自动化测试基础篇--Selenium中数据参数化之TXT
- struts一个action处理多个方法
- 解决 react-router 中 history is 'undefined' 的问题