子组件跟随父组件re-render
想象一下这种场景,一个父组件下面一大堆子组件。然后呢,这个父组件re-render。是不是下面的子组件都得跟着re-render。可是很多子组件里面是冤枉的啊!!很多子组件的props 和 state 然而并没有改变啊!!虽然virtual dom 的diff 算法很快。。但是性能也不是这么浪费的啊!!
class Child extends Component {render() {console.log("我re-render了");const {name,age} = this.props;return (<div><span>姓名:</span><span>{name}</span><span> age:</span><span>{age}</span></div>)}
}
const Person = pureRender(Child);
pureRender其实就是一个函数,接受一个Component。把这个Component搞一搞,返回一个Component看他pureRender的源代码就一目了然
function shouldComponentUpdate(nextProps, nextState) {return shallowCompare(this, nextProps, nextState);
}function pureRende(component) {component.prototype.shouldComponentUpdate = shouldComponentUpdate;
}
module.exports = pureRender;
pureRender很简单,就是把传进来的component的shouldComponentUpdate给重写掉了,原来的shouldComponentUpdate,无论怎样都是return ture,现在不了,我要用shallowCompare比一比,shallowCompare代码及其简单,如下
function shallowCompare(instance, nextProps, nextState) {return !shallowEqual(instance.props, nextProps) || !shallowEqual(instance.state, nextState);
}
一目了然。分别拿现在props&state和要传进来的props&state,用shallowEqual比一比,要是props&state都一样的话,就return false
转载于:https://www.cnblogs.com/crazycode2/p/9086659.html
子组件跟随父组件re-render相关推荐
- react 子传参父_React 子组件给父组件传值、整个组件、方法
一.准备工作 1.定义一个父组件,名字为Parent /src/component/Parent.js import React, {Component} from 'react' export de ...
- react typescript 子组件调用父组件
//父组件 import * as React from 'react'import { Input } from 'antd'const Search = Input.Searchimport &q ...
- react 子传参父_React 子组件向父组件传值的方法
本文介绍了React 子组件向父组件传值的方法,分享给大家 子组件需要控制自己的 state, 然后告诉父组件自己的state,通过props调用父组件中用来控制state的函数,在父组件中展示子组件 ...
- react 子组件回调父组件函数
其实就是父组件将父组件的函数(key:changeState,value:goToBPMS函数)传递给子组件,子组件从props中调用key为changeState的函数,父组件的goToBPMS函数 ...
- 子组件向父组件传参的几种方法
子组件向父组件传参的几种方法 在用vue框架写项目的时候,多多少少会遇到子组件向父组件传参的方法.作为一个新手,确实让人头疼,于是便有了这篇小白写的总结,话不多说,开始! 以下方法全部基于这两个父子组 ...
- P13: * Component组件拆分、子组件向父组件传递数据
React16 基础 阐述 新建服务菜单组件 父组件向子组件传值 子组件向父组件传递数据 warning警告 获取数组索引下标 子组件调用父组件方法 预览最终效果 index.js Xiaojieji ...
- react基础之--子组件向父组件传值
在父组件中定义一个函数,该函数用于处理传递过来得值(比如用于修改父组件中state得数据) 在子组件调用部分通过属性绑定得形式绑定该函数(在子组件中就可以通过this.props.属性名就可以拿到该函 ...
- react子组件向父组件传值
思想: 子组件往父组件传值,父组件中定义一个函数,在子组件中触发,触发的时候子组件把需要传递的数据当作参数传递过去,即可 1.父组件提供一个回调函数(其参数用于接受数据) 2.将函数作为属性的值,利用 ...
- 【react】子组件向父组件传值
相信已经接触react的同学们,对父子间传值已经不陌生了,但是相对来说,父组件向子组件传值很简单,直接在 子组件的标签上传过去,再从子组件的props上结构出来就ok了,但是很多同学还是理解不了如何由 ...
最新文章
- 基于PLSQL的数据库备份方法及如何解决导出clob和blob类型数据报错的问题
- 居然还有这种游戏...是不是有点刺激过头了啊...
- Java-GUI编程实战之管理系统 Day2【Swing(组件介绍、布局管理器、事件类及监听器类)、基础组件按钮和输入框的用法】
- NetworkComms V3 之支持TCP连接和UDP连接
- 那个分分钟处理 10 亿节点图计算的 Plato,现在怎么样了?
- tensorflow机器学习实战指南 源代码_小小白TensorFlow机器学习实战基础
- Audio PCM输出流程(三十三)
- poj 1637 Sightseeing tour —— 最大流+欧拉回路
- 【图像融合】基于matlab GUI小波变换彩色图像融合(带面板)【含Matlab源码 782期】
- python大数据论文_大数据环境下基于python的网络爬虫技术
- 使用Python下载电视剧(二):下载ts片段
- 谷歌搜索表单参数url参数详解
- 神秘美女接机刘谦 曝刘谦女友酷似舒淇身家过亿
- TARS 斩获 2018 年最佳原创开源软件奖
- Windows Server 2022 开始,DNS 客户端支持 DNS over-HTTPS (DoH)
- 一次小米路由器3刷机的翻车记录
- 学习数学建模算法与应用【数据预处理】
- 设计小白也能上手的软件有哪些?
- 2022河海大学物联网工程学院电子信息(计算机与软件方向)890上岸经验帖(毕业2年后,双非三跨211成功)
- 智慧建造管理平台施工现场视频监控系统