重写shouldComponentUpdate方法
import React, { Component } from "react"; import { is } from "immutable"; export default class PureComponent extends Component { shouldComponentUpdate(newProps, newState) { let oldState = this.state || {}; let oldProps = this.props || {}; newState = newState ? newState : {}; if (Object.keys(oldState).length !== Object.keys(newState).length || Object.keys(oldProps).length !== Object.keys(newProps).length) { return true; } //属性的个数长度不一样更新,属性不相同更新,否则不更新 for (let key in newState) { if (!is(newState[key], oldState[key])) { return true; } } for (const key in newProps) { if (!is(oldProps[key], newProps[key])) { return true; } } return false; } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/109570.html
摘要:的优势保证不可变每次通过操作的对象都会返回一个新的对象丰富的性能好通过字典树对数据结构的共享的问题与原生交互不友好通过生成的对象在操作上与原生不同,如访问属性,。 Immutable.js Immutable的优势 1. 保证不可变(每次通过Immutable.js操作的对象都会返回一个新的对象) 2. 丰富的API 3. 性能好 (通过字典树对数据结构的共享) Immutab...
摘要:为什么你要在中使用熟悉的都应该知道,是一个的框架,为了解决更新的问题,使用了,通过修改,来实现高效的更新。总结就是使用通过使用,可以让我们更容易的去处理缓存回退数据变化检测等问题,简化我们的开发。 简单的来讲,immutable.js通过structural sharing来解决的性能问题。看看immutable.js是如何做的当我们发生一个set操作的时候,immutable.js会...
摘要:插件允许我们在的语法中使用在传递数据时,可以通过进一步提升组件的渲染性能,是针对可变对象和不可变对象所做的折衷。使用之后,仅仅改变状态了的组件及其父组件被重新渲染。 1 前言 网页性能最大的限制因素是浏览器重绘(reflow)和重排版(repaint),React的虚拟DOM就是为了尽可能减少浏览器的重绘和重排版,从React的渲染过程看,避免不必要的渲染可以进一步提高性能。 2 Pu...
摘要:是一个前端页面制作工具,方便产品,运营和视觉的同学迅速开发简单的前端页面,从而可以解放前端同学的工作量。支持恢复现场功能关闭页面配置不丢失支持操作。提供了一个方法,用于的拆分。就是发出的通知,表示应该要发生变化了。 pagemaker是一个前端页面制作工具,方便产品,运营和视觉的同学迅速开发简单的前端页面,从而可以解放前端同学的工作量。此项目创意来自网易乐得内部项目nfop中的page...
阅读 2769·2021-11-23 09:51
阅读 3528·2021-10-08 10:17
阅读 1260·2021-10-08 10:05
阅读 1308·2021-09-28 09:36
阅读 1832·2021-09-13 10:30
阅读 2173·2021-08-17 10:12
阅读 1669·2019-08-30 15:54
阅读 2003·2019-08-30 15:53