React router 的 Route 中 component 和 render 属性理解

  • Route 标签的三个互斥属性 render、component、children
  • Route 就是用来匹配路由的,并且对匹配到的路由就显示,所以会有可能两个以上的路由会匹配到,所以需要 Switch 标签包围,Switch 可以帮助只渲染匹配到的第一个路由。
  • 一般情况下,Route 推荐使用 children 元素方式配置路由,但是除此之外还有另外三种配置方法。
  1. compnent (属性或者方法):
  2. render(方法)
  3. children(方法):children 是只要配置了该属性,其里面返回的函数都会渲染,无论路径是否匹配。它能接受所有的路由属性,若不匹配 match 会为 null
  • children 的优先级会比其他两个要高
  • 内联的 component 方法当父组件的 render 方法每次(非第一次)执行时(比如 setState 造成)都会使得 component 方法返回的组件再次重新执行初始化生命周期函数,而 render 属性的方法就不会,它在父组件再次执行 render 时只会触发组件的 update 生命钩子
  1. 每次路由切换都触发路由对应的组件重新渲染,无论是 component 属性还是 render 属性
  2. 当用 component 属性,值为匿名函数时,父组件的每次重新 render(无论有没有 props 传递给子组件)都会造成子组件重新 render(每次 render 都会执行 constructor)
  3. 当用 component 属性时,值为 react 元素时,父组件的每次重新 render 都不会造成子组件每次都执行 constructor
  4. 当用 render 属性时,值为匿名函数时,父组件的每次重新 render 都不会造成子组件每次都执行 constructor
  5. 当用 render 属性时,值不可以为 react 元素,只能是函数

React router 的 Route 中 component 和 render 属性理解相关推荐

  1. html根据文档定位,html文档中的location对象属性理解及常见的用法

    关于location对象的简单理解: 1.location对象中涵盖了当前页面(本页面)或者更直接的说,是当前加载的这个html文档的url信息 2.location对象作为window对象的一个属性 ...

  2. CSS中transform:skew属性理解

    transform中通常用skew来对盒子进行倾斜.如下代码: #div{transform: skewY(10deg);}  //对Y方向进行倾斜10度,意思是保留Y方向,将盒子沿着X方向进行倾斜. ...

  3. 对于Spring中事务的readonly属性理解

    spring中readOnly的定义,并不是不能在事务中进行修改等DML操作,它只是一个"暗示",提示数据库驱动程序和数据库系统,这个事务并不包含更改数据的操作,那么JDBC驱动程 ...

  4. router路由react_使用React Router在React中受保护的路由

    router路由react In this video, you will see how to create a protected route using React Router. This r ...

  5. React Router教程–如何使用代码示例渲染,重定向,切换,链接等

    If you have just started with React, you are probably still wrapping your head around the whole Sing ...

  6. 关于React Router v4的虚张声势指南

    In this article, we'll cover the important things you can quickly learn to be informed and confident ...

  7. 使用React Router v4的嵌套路由

    React Router v4 introduced a new declarative, component based approach to routing. With that approac ...

  8. react router 4

    React Router V4 也走了react的路,咳,一切都成组件.例如Route.Link.Switch等都是组件. react-router和react-router-dom是react ro ...

  9. react router

    目录 前言 核心 1.内置的组件 2.内置的路由器组件 3.History 对象 4.Location 对象 5.react router 的安装包 一.React-Router v1 1.一些概念 ...

最新文章

  1. linux运行炉石传说,使用Lutris在Linux上玩炉石传说
  2. gevent -1073740791
  3. MySQL数据迁移到SQL Server
  4. DataContractJsonSerializer类
  5. Divide and Sum CodeForces - 1445D(排列组合+逆元)
  6. 浅谈“==”、equals和hashcode,以及map的遍历方法(可用作上一篇k-means博文参考)
  7. 昆西·拉森的净资产是多少?
  8. C++学习之路 | PTA乙级——1090 危险品装箱 (25 分)(精简)
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的公司人事档案管理系统
  10. C/C++-获取成员变量的指针
  11. android 中如何监听按键的长按事件
  12. java编程规范之java命名规范
  13. css 设置背景颜色渐变
  14. 越狱软件可带来千万量级用户
  15. 【文献阅读】大脑中与音乐体验和与音乐错误(冲突)监测相关的神经激活
  16. Opencv中的DPM应用
  17. 每天读一点职场心理学读书笔记
  18. myEclipse 注册码 在线生成
  19. 抖音企业号抖音智能营销系统源码待开发技术。。。。。
  20. 前端React单点登录的实现

热门文章

  1. Linux/docker下oracle开启监听,开启自动启动
  2. 2022-2028年中国工业环保产业投资分析及前景预测报告
  3. 数据结构(03)— 数据处理基本操作(数据的查找、新增、删除、修改)
  4. 剑指offer 40.最小的 K 个数 python代码
  5. Plotly_绘图画图作图交互
  6. 谷歌BERT预训练源码解析(二):模型构建
  7. Tensorflow中tf.ConfigProto()详解
  8. Python List extend()方法
  9. Map再整理,从底层源码探究HashMap
  10. MegEngine基本概念