react-生命周期 componentWillReceiveProps

zz/2024/5/21 21:32:16

react 生命周期 componentWillReceiveProps

这个钩子函数我的用处是 点击按钮返回值 然后再这里获取

1.父组件重新render
直接使用,每当父组件重新render导致的重传props,子组件将直接跟着重新渲染,无论props是否有变化。可通过shouldComponentUpdate方法优化。
2.在componentWillReceiveProps方法中,将props转换成自己的state
是因为componentWillReceiveProps中判断props是否变化了,若变化了,this.setState将引起state变化,从而引起render,此时就没必要再做第二次因重传props引起的render了,不然重复做一样的渲染了。
3.组件本身调用setState,无论state有没有变化。可通过shouldComponentUpdate方法优化。

替代方案
getDerivedStateFromProps
用法

static getDerivedStateFromProps(nextProps,prevState){//该方法内禁止访问thisif(nextProps.email !== prevState.email){//通过对比nextProps和prevState,返回一个用于更新状态的对象return {value:nextProps.email}}//不需要更新状态,返回nullreturn null
}

http://www.ngui.cc/zz/2732125.html

相关文章

! [rejected] master -> master (non-fast-forward)

报错信息如下 ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to https://gitee.com/giteeforone/suzhoubank.git 解决办法 git pull --rebase origin master:mastergit push -u origin master

Laravel学习-处理异常

在页面 App\Exceptions 下的 Handler 方法中修改 public function render($request, Exception $exception){if (getenv(APP_DEBUG) true) {$data [code > $exception->getCode(),msg > $exception->getMessage()];return response()->json($data…

Laravel学习-添加分类和获取列表-with

一. 添加分类, 在模型中 建立模型之间的关联 // 在模型文件中添加, 建立模型之间的关联public function children() {// Category 关联的表名; pid 外键, id 内键return $this->hasMany(Category::class, pid, id); } 二. 在控制器中使用 只获取id, pid, name, leave等字段…

Laravel学习-创建辅助函数helpers

helpers - 自定义辅助函数; 在项目根目录下创建 helpers.php 1. 创建helpers文件后,要在composer.json文件 大概39行的 autoload字段中添加 "autoload" : {"files": ["helpers.php"] } 2. 然后刷新composer自动加载, 执行下面命令 composer …

Laravel学习-发送邮箱

路由控制器 发送邮件验证码路由 更新邮箱的路由 1.配置邮箱 .env MAIL_DRIVERsmtp MAIL_HOSTsmtp.163.com //这个是你用的哪里的邮箱,就用他们的地址 MAIL_PORT465 MAIL_USERNAME12621qq.com //邮箱的账号 MAIL_PASSWORDANNSDEDJJDJ //授权码 MAIL_ENCRYPTIONssl…

php学习-常量

学习来源: 黑马程序员PHP零基础入门到精通教程(P1基础6天)_哔哩哔哩_bilibili 一. 定义常量的两种方式 (5.3之后才有两种) 1. 使用定义常量的函数: define(常量名, 常量值); 2. 5.3之后才有的: const 常量名 123 二. 命名规则 1. 常量不需要使用 $…

1.1 CPU占用率

下面是一些了解当前线程/进程/系统效能的API,所有描述来自MSDN文档,具体如下: 注意每个函数对应的头文件和相应的lib. DWORD GetTickCount(void);/*Header: Winbase.h, include Windows.hLink Library: Kernel32.libDLL: Dernel32.dllDetail…

VC 2005 coding shortcuts

coding 了这么多年,有些快捷键没用了老忘,有空把它整出来(备忘) 一些还不怎么熟悉使用的快捷键://debug: AltF10 :Apply codes changes CtrlF10 :Run to cursor ShiftF11 :跳出当前函数CtrlShiftF10 &a…

[转]Cygwin使用

最近需要用到bash,perl等脚本,找到cygwin来学学... 很多用windows的朋友不习惯于用linux的开发环境。虽然很乐意尝试一下,但是往往怕linux系统打乱了自己的正常生活:1〉装linux系统把windows系统给搞坏了,导致自己无法正常生活&a…

ExtJs之grid使用详解(转帖)

Ext2.0是一个javascript框架,它的Grid控件和其它可以显示数据的控件,能够支持多种数据类型,如二维数组、Json数据和XML数据,甚至包括我们自定义的数据类型。Ext为我们提供了一个桥梁Ext.data.Store,通过它我们可以把任…