在vue中,可以将路由单独写在一个配置文件中,便于整理维护,而在前面总结整理的react中,都是直接将路由配置放在需要使用的地方,少数的时候话可以接受,但是当项目做大,这种方式就不再被推荐了,我们再react中,也可以向vue那样,将路由配置模块化,然后在需要使用的地方引入就可以了。

本次路由模块化整理使用的是上一篇的项目,在上一篇的结束,有提供下载链接。

项目准备

在上一节的最后,实现了嵌套路由:

这里要实现路由模块化,首先实现单层路由下的模块化,再实现嵌套路由的路由模块化,所以,首先修改一下News.js(因为后面话需要使用嵌套路由,所以这里先注释,而不是删除)。

路由模块化

https://reacttraining.com/react-router/web/example/route-config

查看文档可以看到,实现路由模块化,首先需要使用数组来存储数组,所以先来整理App.js

  

 

按照上面这样做,虽然没有报错,但是也没有完全实现想要的效果,为了实现默认显示Home页面,在配置路由的时候,将Home组件的路径配置为“/”,但是这样的话,路径“/news”也会配匹配到,所以还需要在默认显示的模块路径下配置严格匹配模式:

  

好了,简易的路由模块化就实现了。

代码分离

目前,只有少量的路由,将路由配置放在根组件里,影响也不是很大,但是个人习惯,还是喜欢将路由配置单独配置,其实就是新建一个文件来存储路由配置就可以了。

1,在src文件夹下新建router.js文件。

2,将路由配置移入到router.js并暴露出来。

3,在需要使用路由的位置,这里就是App.js文件中引入router.js,完成。

嵌套路由的路由模块化

要实现嵌套路由,首先要将上面注释掉的一段代码恢复,然后按照上面一样的配置就可以了。

1,在router.js文件中配置路由。因为时政要闻和娱乐新闻都是News组件下的二级路由,所以使用配置路由的时候也需要嵌套在news路径下。

2,在App.js中,将二级路由使用父子组件传值的方式传递到子组件中去。

3,在需要使用嵌套路由的子组件中回去父组件传递的路由值,进行渲染。

到此,嵌套路由的模块化也实现了。

代码下载:点这里

react中的路由模块化的更多相关文章

  1. React中的路由系统

    React中的路由系统 提起路由,首先想到的就是 ASPNET MVC 里面的路由系统--通过事先定义一组路由规则,程序运行时就能自动根据我们输入的URL来返回相对应的页面.前端中的路由与之类似,前端 ...

  2. 在react中实现CSS模块化

    react中使用普通的css样式表会造成作用域的冲突,css定义的样式的作用域是全局,在Vue 中我们还可以使用scope来定义作用域,但是在react中并没有指令一说,所以只能另辟蹊径了.下面我将简 ...

  3. react中配置路由

    一个路由就是一个通道,页面之间的跳转其实就是路由的切换,所以每个应用的路由配置是必须的,浅谈react中怎么配置路由 首先你要在src文件夹下新建一个router的文件下,在router文件下新建一个 ...

  4. react中的路由配置踩坑记

    react 路由配置中,如果根路由(/)匹配一个组件,另一个路由(/list)在进行匹配的时候也会匹配到根路由(/),即在 /list 页面展示的时候 / 页面总是展示在上方. 此时如果想进行严格匹配 ...

  5. react 中的路由 Link 和Route和NavLink

    route是配置,link是使用 https://blog.csdn.net/chern1992/article/details/77186118(copy) 嵌套路由一般使用Route,类似于vue ...

  6. react中,路由的使用。import {BrowserRouter,Switch,Route} from "react-router-dom";

      import React from "react"; import ReactDom  from "react-dom"; import {BrowserR ...

  7. react 中的路由 属性exact

    https://www.cnblogs.com/nailc/p/8718137.html(copy)

  8. react实战系列 —— React 中的表单和路由的原理

    其他章节请看: react实战 系列 React 中的表单和路由的原理 React 中的表单是否简单好用,受控组件和非受控是指什么? React 中的路由原理是什么,如何更好的理解 React 应用的 ...

  9. React中路由的基本使用

    现在我们来搞一搞React中的路由吧,别问我为什么这木喜欢用搞这个字,因为它比较深奥. 注意下面我们使用的是React-Router-DOM React中的路由基本使用还是满简单的,零碎的小东西有点多 ...

随机推荐

  1. (16)模型层Models - ORM的使用

    需求:通过orm创建user表 先配置settings文件夹 连接数据库和配置数据库 Django的模块有两种 1.mysqlDB  django内置的模块,只能在python2.X版本下用 2.py ...

  2. python------模块定义、导入、优化 ------->hashlib模块

    一.hashlib模块 用于加密相关的操作,3.x版本里代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法. (MD5消息摘要算法(英语 ...

  3. 【NOI2005】 聪聪可可

    树分治劲啊 原题: 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了, ...

  4. Java开发培训基础知识解析之反射机制

    Java是老牌编程语言,是当前应用最广泛的编程语言之一.想要学习Java你就一定要掌握Java基础知识,而反射对于初学Java的人来说绝对是非常重要的知识点.什么是反射?如何理解反射机制?如何使用反射 ...

  5. Makefile introduction (very old presentation)

  6. caller

    caller返回调用了当前函数的那个对象(谁call了当前函数,即当前函数的caller) 对于函数来说,caller 属性只有在函数执行时才有定义 假如函数是由顶层(window)调用的,那么 ca ...

  7. 深入理解 content 计数器

    计数器可以说是content的重点, 因为此功能非常强大, 实用, 并且不具有可替代性, 甚至可以实现连JavaScript都不好实现的效果. 所谓css计数器效果, 就是使用CSS代码实现随元素的数 ...

  8. 微信小程序 学习资料

    微信小程序 学习资料 资料名称 网址 官方教程 https://developers.weixin.qq.com/miniprogram/dev/index.html?t=18110517

  9. MySQL命令行下执行sql文件(sql脚本)

    在mysql命令行下执行sql文件(sql脚本) mysql> source    sql文件完整路径 如: mysql> source   D:\\MySQL\\create.sql 文 ...

  10. java自动装箱的一个例子

    Object obj = 56; int i = (Integer)obj; 第一行等价于: Object obj = Integer.valueOf(56);      Integer.valueO ...