React中条件渲染的示例分析-创新互联

小编给大家分享一下React中条件渲染的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

成都创新互联专注于梧州企业网站建设,响应式网站开发,商城网站制作。梧州网站建设公司,为梧州等地区提供建站服务。全流程定制制作,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

前言

在React中,你可以创建不同的组件各自封装你需要的东西。之后你可以只渲染其中的一部分,这取决于应用的state(状态)。

条件渲染

可以根据state的值进行组件的条件渲染。例如:

function Greeting(props) { 
 const isLoggedIn = props.isLoggedIn;
 if (isLoggedIn) {
 return ;
 }
 return ;
}

ReactDOM.render( 
 // Try changing to isLoggedIn={true}:
 ,
 document.getElementById('root')
);

你还可以用变量去存储组件,以便进行条件筛选,使得渲染函数的返回值更加清爽,例如:

class LoginControl extends React.Component { 
 constructor(props) {
 super(props);
 this.handleLoginClick = this.handleLoginClick.bind(this);
 this.handleLogoutClick = this.handleLogoutClick.bind(this);
 this.state = {isLoggedIn: false};
 }

 handleLoginClick() {
 this.setState({isLoggedIn: true});
 }

 handleLogoutClick() {
 this.setState({isLoggedIn: false});
 }

 render() {
 const isLoggedIn = this.state.isLoggedIn;

 let button = null;
 if (isLoggedIn) {
 button = ;
 } else {
 button = ;
 }

 return (
 
   {button}  
 );  } } ReactDOM.render(   ,  document.getElementById('root') );

还可以使用短操作符来实现条件筛选,可以用更短的代码写出渲染结果。例如&&来替代if,?:来替代if else, 例如:

function Mailbox(props) { 
 const unreadMessages = props.unreadMessages;
 return (
 
 

Hello!

 {unreadMessages.length > 0 &&  

  You have {unreadMessages.length} unread messages.  

 }  
 ); } const messages = ['React', 'Re: React', 'Re:Re: React'];  ReactDOM.render(   ,  document.getElementById('root') );
render() { 
 const isLoggedIn = this.state.isLoggedIn;
 return (
 
 The user is {isLoggedIn ? 'currently' : 'not'} logged in.  
 ); }

这种跟更大的表达式的写法也可以,但是不推荐,因为代码就不是很直观了。

render() { 
 const isLoggedIn = this.state.isLoggedIn;
 return (
 
 {isLoggedIn ? (    ) : (    )}  
 ); }

如果组件有时候需要渲染出来,而有时候不需要渲染出来,在不需要渲染的时候返回null即可。例如:

function WarningBanner(props) { 
 if (!props.warn) {
 return null;
 }

 return (
 
 Warning!
 
 ); } class Page extends React.Component {   constructor(props) {  super(props);  this.state = {showWarning: true}  this.handleToggleClick = this.handleToggleClick.bind(this);  }  handleToggleClick() {  this.setState(prevState => ({  showWarning: !prevState.showWarning  }));  }  render() {  return (  
      {this.state.showWarning ? 'Hide' : 'Show'}    
 );  } } ReactDOM.render(   ,  document.getElementById('root') );

看完了这篇文章,相信你对“React中条件渲染的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联网站建设公司行业资讯频道,感谢各位的阅读!

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:React中条件渲染的示例分析-创新互联
分享网址:http://myzitong.com/article/dhijcc.html

其他资讯