博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React:Conditional Rendering(条件渲染)
阅读量:7209 次
发布时间:2019-06-29

本文共 1832 字,大约阅读时间需要 6 分钟。

就像JS中常常会根据条件(比如if/else、switch)返回不同的值,React中也可以根据组件的状态或其他参考条件返回不同的React Element。

比如根据用户是否登陆渲染对应的UI面板。

1 class LoginControl extends React.Component { 2   constructor(props) { 3     super(props); 4     this.handleLoginClick = this.handleLoginClick.bind(this); 5     this.handleLogoutClick = this.handleLogoutClick.bind(this); 6     this.state = {isLoggedIn: false}; 7   } 8  9   handleLoginClick() {10     this.setState({isLoggedIn: true});11   }12 13   handleLogoutClick() {14     this.setState({isLoggedIn: false});15   }16 17   render() {18     const isLoggedIn = this.state.isLoggedIn;19 20     let button = null;21     if (isLoggedIn) {22       button = 
;23 } else {24 button =
;25 }26 27 return (28
29
30 {button}31
32 );33 }34 }35 36 ReactDOM.render(37
,38 document.getElementById('root')39 );

Class: constructor(props+state+binded-handler)  + handler +render( return React Elements))

该结构中,只有render函数内用JSX最终输出React Elements。

inline-if:

可以用&&操作符 充当if,左边为真时再执行右边,否则跳过。

1   return ( 2     
3

Hello!

4 {unreadMessages.length > 0 && 5

6 You have {unreadMessages.length} unread messages. 7

8 } 9
10 );

inline-if-else:

1     
2 The user is
{isLoggedIn ? 'currently' : 'not'} logged in.3

当条件比较复杂时,推荐将组件的模板拆分。

 

隐藏组件:

当希望组件隐藏时,让其返回null即可。不过这并不影响到生命周期函数的执行。 componentWillUpdate 和componentDidUpdate依然会被触发哦。

1 function WarningBanner(props) { 2   if (!props.warn) { 3     return null; 4   } 5   //... 6   render() { 7     return ( 8       
9
10
13
14 );15 //...

 

转载于:https://www.cnblogs.com/alan2kat/p/7466689.html

你可能感兴趣的文章
CAD文件图纸过大,该怎么解决?
查看>>
Spring aop 切不进去原因。。
查看>>
mysql事务的ACID原理
查看>>
OTRS 安装方法
查看>>
11.22 awk
查看>>
Python学习笔记_0327
查看>>
SQLServer安装和JDBC连接SQLServer
查看>>
Oracle总结【PLSQL学习】
查看>>
sed命令详解
查看>>
geth如何解锁账户?
查看>>
JAVA实现双向链表的增删功能
查看>>
SpringCloudSpringBootmybatis分布式微服务云架构-hystrix参数详解
查看>>
(一)spring cloud微服务分布式云架构-Spring Cloud简介
查看>>
百家笔记网为什么选择采用读书笔记为博客写作主题?
查看>>
如果需要精确的答案,请避免使用float 和 double(48)
查看>>
假如高考考python编程,这些题目你会几个呢?
查看>>
计算机网络学习整理:Http协议
查看>>
单用户模式和救援模式
查看>>
ActiveMQ从入门到精通(一)
查看>>
时序数据库连载系列:指标届的独角兽Prometheus
查看>>