React:Conditional Rendering(条件渲染)
就像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 = <LogoutButton onClick={this.handleLogoutClick} />; 23 } else { 24 button = <LoginButton onClick={this.handleLoginClick} />; 25 } 26 27 return ( 28 <div> 29 <Greeting isLoggedIn={isLoggedIn} /> 30 {button} 31 </div> 32 ); 33 } 34 } 35 36 ReactDOM.render( 37 <LoginControl />, 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 <div> 3 <h1>Hello!</h1> 4 {unreadMessages.length > 0 && 5 <h2> 6 You have {unreadMessages.length} unread messages. 7 </h2> 8 } 9 </div> 10 );
inline-if-else:
1 <div> 2 The user is <b>{isLoggedIn ? 'currently' : 'not'}</b> logged in. 3 </div>
当条件比较复杂时,推荐将组件的模板拆分。
隐藏组件:
当希望组件隐藏时,让其返回null即可。不过这并不影响到生命周期函数的执行。 componentWillUpdate
和componentDidUpdate
依然会被触发哦。
1 function WarningBanner(props) { 2 if (!props.warn) { 3 return null; 4 } 5 //... 6 render() { 7 return ( 8 <div> 9 <WarningBanner warn={this.state.showWarning} /> 10 <button onClick={this.handleToggleClick}> 11 {this.state.showWarning ? 'Hide' : 'Show'} 12 </button> 13 </div> 14 ); 15 //...
转载于:https://www.cnblogs.com/alan2kat/p/7466689.html
React:Conditional Rendering(条件渲染)相关推荐
- React - Initial Rendering(初始化渲染)
React - Initial Rendering(初始化渲染) 以下内容均从源码角度分析,UI更新本质上是数据更改(props或者state) = render(state).React提供了一种直 ...
- react把表格渲染好ui_在React中实现条件渲染的7种方法
借助react,我们可以构建动态且高度交互的单页应用程序,充分利用这种交互性的一种方法是通过条件渲染. 条件渲染一词描述了根据某些条件渲染不同UI标签的能力.在react文档中,这是一种根据条件渲染不 ...
- react 条件渲染
在 React 中,你可以创建不同的组件来封装各种你需要的行为.然后还可以根据应用的状态变化只渲染其中的一部分. React 中的条件渲染和 JavaScript 中的一致,使用 JavaScript ...
- web前端高级React - React从入门到进阶之React条件渲染
系列文章目录 第一章:React从入门到进阶之初识React 第一章:React从入门到进阶之JSX简介 第三章:React从入门到进阶之元素渲染 第四章:React从入门到进阶之JSX虚拟DOM渲染 ...
- React条件渲染、列表渲染和组件传值
React中实现v-show 父组件 import React from "react"; import Child4 from "./components/Child4 ...
- CSharpGL(30)用条件渲染(Conditional Rendering)来提升OpenGL的渲染效率
CSharpGL(30)用条件渲染(Conditional Rendering)来提升OpenGL的渲染效率 当场景中有比较复杂的模型时,条件渲染能够加速对复杂模型的渲染. 条件渲染(Conditio ...
- React中文文档之Conditional Rendering
Conditional Rendering - 有条件的渲染 在React中,你可以创建唯一的组件,来封装你需要的行为.之后,你可以仅仅渲染它们中的一些,这取决于你应用的状态. React中的有条件的 ...
- react 条件渲染_React中的条件渲染语法
react 条件渲染 为什么我们不能使用If-Else以及三元运算符如何提供帮助 (Why We Can't Use If-Else and How the Ternary Operator can ...
- 条件渲染之react高阶组件——HOC
定义:它接受任何输入(多数时候是一个组件)并返回一个组件作为输出.返回的组件是输入组件的增强版本,并且可以在 JSX 中使用.不是react api而是一种设计模式. 作用:强化组件,复用逻辑,提升渲 ...
最新文章
- 【Qt】Linux上设置自启动后qApp->applicationDirPath()的返回值问题
- GDB与远程(交叉)GDB调试
- PATH和CLASSPATH
- 视+AR正式发布EasyAR引擎2.0版,并宣布开放AR相机平台
- css 各浏览器里的不同
- python基础语法、数据结构、字符编码、文件处理 练习题
- 如何高效的使用Google
- 王思聪吃热狗 - 飞机大战小游戏
- 二广高速公路4标段道路设计--武汉理工大学本科生毕业设计
- 实验3matlab的符号运算,实验MATLAB符号运算
- java 序列号怎么获取,Java获得硬盘和主板的序列号代码
- matlab 画温度分布,matlab画温度分布图
- 金山打字专业文章计算机,练打字试卷_推荐几篇适合学生练习打字的文章_淘题吧...
- Linux与Windows命令行杀死端口命令
- windows使用批处理bat控制打印机自动打印测试页(可设置定时自动打印)
- Sidecar:让 iPad 成为 Mac Mini 外接显示屏
- python语法速记, Python 3 Cheat Sheet
- 春联大全·七字联(1)
- Python中rect属性
- 列联表中的相关测量(卡方值与相关系数之间的转换)
热门文章
- 如何提高生产力(四)、兼职为什么很难操作?
- Android 之 ProgressDialog用法介绍
- DevExpress.XtraGrid.Views.Grid.GridView 选中行焦点的滚动条的位置
- 如何判断链表中存在环路
- 带UpdatePanel页面返回js问题
- Fabric学习笔记(一)- Centos 7下的Fabric 2.3.2环境搭建
- PostgreSQL相关知识概念
- Kafka的rebalance机制
- Intellij Idea插件利器推荐大全
- Struts2之HttpServletRequest、HttpServletResponse,HttpSession,Parameters处理