在使用react框架的时候中往往会遇到需要条件渲染的情形,这时候,许多人会设想采用if语句来实现,比如下面,当满足条件condition时,conditonRender渲染组件ComponentA,当不满足 条件时,渲染ComponentB

const conditionRender = () =>{
if(condition){
return <ComponentA />
}
else{
return <ComponentB />
}
}

其实,结合三木运算符以及JSX的语法糖,它在形式和逻辑上可以变得更紧凑一些,比如:

const conditionRender = () =>{
return {condition?<componentA />:<componentB />}
}

同样的一些情况,我们也可以尝试用&&运算符实现条件渲染,比如在满足条件condition时,conditonRender渲染组件Component

const conditionRender = () =>{
if(condition){
return <Component />
}
}

改成如下,因为&&运算符的特性,当condition为true时需要检查&&后面那个表达式boolean值(true or false),那么Component就被渲染出来,而当conditon为false时,不在检查&&运算符后面表达式的boolean值,那么Component就被隐藏了

const conditionRender = () =>{
return {condition&&<Component />}
}

总结:其实两者效果一样,但在大量而复杂的代码块里,&&运算符和三木运算符的合理使用显然会大大增强代码的可读性

最新文章

  1. 系统级性能分析工具perf的介绍与使用
  2. el: 在jsp页面内使用函数判断子字符串
  3. [转]Jexus的常用操作和基本配置
  4. Implement Custom Cache Dependencies in ASP.NET 1.x
  5. 1071: [SCOI2007]组队 - BZOJ
  6. linux之ioctl函数解析
  7. Python实现Hadoop MapReduce程序
  8. iOS 10 之后,相机权限问题及易出现的Crash
  9. [jdoj1817]Drainage Ditches_网络流
  10. Linux之dmesg命令
  11. SAP中的BRF+
  12. C语言学习及应用笔记之七:C语言中的回调函数及使用方式
  13. 对迭代器操作的python 模块
  14. 【速读】——ResNeXt
  15. 【BZOJ1013】【JSOI2008】球形空间产生器 高斯消元
  16. 【LeetCode】89.Gary Code
  17. nodeJs实现微信小程序的图片上传
  18. Android - AsyncTask你知道多少?
  19. 【 js 基础 】【 源码学习 】backbone 源码阅读(三)
  20. 在ABBYY中如何修正倾斜的PDF页面

热门文章

  1. dbf导入sqlserver的方法
  2. MyBatis CRUD Java POJO操作
  3. java调用oracle存储过程,返回结果集
  4. Spring Boot启动过程(一)
  5. React Router基础使用
  6. Gdb远程调试Linux内核遇到的Bug
  7. Crontab could not create directory .ssh
  8. 棒!使用.NET Core构建3D游戏引擎
  9. Jmeter生成html格式测试报告
  10. 微软Visual Studio二十周年:VS2017于3月7日发布