大家都知道生命周期shouldComponentUpdate返回false时,不会进行后续的渲染,那这个时候state是什么情况呢。我们看一下demo

class Toggle extends React.Component {constructor(props) {super(props);this.state = {number: 1};// 这边绑定是必要的,这样 `this` 才能在回调函数中使用this.handleClick = this.handleClick.bind(this);}handleClick() {this.setState(prevState => ({number: this.state.number + 1}));}shouldComponentUpdate(nextProps, nextState) {if(this.state.number == 4) {return false}return true}render() {return (<button onClick={this.handleClick}>{this.state.number}</button>
    );}
}ReactDOM.render(<Toggle />,document.getElementById('example')
);

  number是4的时候,我们返回false。运行结果表明,当按钮的数字是4的时候,再点击,数字不变化,接着点击,数字由4变成了6。表明,shouldComponentUpdate返回false不会影响state的改变,只是不接着进行渲染了而已。

  接下来,应该把生命周期里每个阶段里调用setState会有什么后果,深入搞明白,深入React技术栈30页,还有更多的书籍先看一看。

转载于:https://www.cnblogs.com/zhansu/p/10294496.html

react里执行shouldComponentUpdate时返回false的后果相关推荐

  1. mysql的过程返回执行成功与失败_mysqli_query函数执行成功返回一个结果标识符,失败时返回false...

    数执识符失二醇纳米制备脂E丙烯维素丁酯聚乙聚乳基纤氰基粒的.磷.乙材料酸异酸D. 行成二醇片的凝胶骨架.甘棕榈纤维可用为A.单聚乙甲基于亲油酯油E.乙材料水性酸甘素D. 墨客古代文人往往寄情山水,功返 ...

  2. mysql 查询false_mysql_affected_rows在成功查询时返回False?

    我在排序这个PHP / MySQL问题时遇到困难.让我告诉你我的数据库,并解释我的情况: 创建表格: CREATE TABLE IF NOT EXISTS `users` ( `id` int(50) ...

  3. php fopen函数失败,php fopen函数返回false

    使用yum安装的apache2.4.6   php 7.2.2  正确安装后使用fopen()函数打开文件时返回false 百度一下又三种原因 1.目录或者文件夹权限原因 (可以用   chmod - ...

  4. ajax 阻止默认提交,jQuery验证插件:在对ajax调用servlet时,submitHandler不会阻止默认提交-返回false无效...

    我有一个使用jquery和servlet的简单表单.jQuery对Servlet进行Ajax调用,然后Servlet进行一些服务器端计算,然后通过jQuery在同一页面上显示结果.我不希望表单进行默认 ...

  5. 单值二叉树:如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。

    前言: 二叉树刷题是有固定思维的,请移步 README]二叉树刷题框架 单值二叉树 题目 点击跳转:LeetCode 根据框架描述,我只需判断一个结点,如果这个节点是null就返回true,不是的话, ...

  6. react如何通过shouldComponentUpdate来减少重复渲染

    在react开发中,经常会遇到组件重复渲染的问题,父组件一个state的变化,就会导致以该组件的所有子组件都重写render,尽管绝大多数子组件的props没有变化 render什么时候会触发 首先, ...

  7. React里里面试准备

    文章目录 项目描述 1.生命周期 2.Hook 3.hook包装函数优化 4.Redux 5.自己封装的组件 6.图片懒加载 7.说一下 connect 怎么使用 8.flex 布局 9.rem 布局 ...

  8. yii2 设置的缓存无效,返回false,不存在

    为了那些因为标题点进来的小伙伴,我直接把问题解决方案写在开头: 问题描述, $cache->add($key,'value',1800);这样设置了值后,后面无论怎么取这个$key,取出来的结果 ...

  9. 【转】React 16 中从 setState 返回 null 的妙用

    概述 在 React 16 中为了防止不必要的 DOM 更新,允许你决定是否让 .setState 更来新状态.在调用 .setState 时返回 null 将不再触发更新. 我们将通过重构一个 mo ...

  10. Pytorch安装教程 及 解决 torch.cuda.is_available() 返回 False 的问题

    Pytorch安装教程 及 解决 torch.cuda.is_available() 返回 False 的问题 有NVIDIA显卡的可以先去看CUDA安装教程,pytorch可以搭配CUDA10.0~ ...

最新文章

  1. NeurIPS 2018 | 如何用循环关系网络机智地解决数独类关系推理任务?
  2. JEPLUS表格组件数据平铺——JEPLUS软件快速开发平台
  3. mysql函数封装_Mysql对文件操作的封装
  4. Python3安装(Windows)
  5. Github趋势榜第一!英伟达发布StyleGAN2,生成图像逼真到吓人
  6. 【备战春招/秋招系列】美团Java面经总结进阶篇 (附详解答案)
  7. JAVA 表格组件 + rs.beforeFirst()使用
  8. 大数据和数据挖掘之间,主要有什么关系?
  9. 用别人的githut账号在自己电脑上拉取代码问题
  10. 【mac】nvm 的安装和使用,解决mac重启node not found,每次都得source ~/.bash_profile
  11. c++ opengl 三维图形中显示文字_为什么使用GPU渲染图形图像,而不使用CPU呢?
  12. 抓铁有力榜:踏石有印,抓铁留痕
  13. Java项目实现文件上传FTP
  14. python 彩带图_趋势彩带主图股票公式源码分享
  15. 长沙医学院计算机科学与技术专业怎么样,长沙医学院有哪些专业及什么专业好...
  16. 短片连载(6),记录这段 电脑爱好者 生涯,从四年级开始接触计算机,直到大二寒假决定步入IT行业。...
  17. 最好用的图像处理软件推荐:风格迥异的靠谱专业还简单的图像处理软件首选Chasys Draw IES
  18. 今天遇到的输入法找不到的问题
  19. 朝曦建筑建材租赁管理系统
  20. 怎么放大图片保持清晰度?如何把图片无损放大?

热门文章

  1. java valid payload_Spring Validation最佳实践及其实现原理,参数校验没那么简单!
  2. python 实现两个excel表格数据的对比--代码
  3. 学生选课系统代码--分析2需求分析
  4. Python实现桌面程序:PyQt5 + QtDesigner -- 界面设计与逻辑编写
  5. 2019测试指南-web应用程序安全测试(二)识别应用程序入口点
  6. PHP之mb_strrpos使用
  7. PHPExcel导出Excel方法总结——ThinkPHP5
  8. Linux3.4内核的基本配置和编译
  9. hdu1505 dp:01矩形中最大面积全0矩阵
  10. org manual翻译--2.7 纯文本列表