当前位置: 首页 > wzjs >正文

如何说服企业做网站网页设计毕业设计开题报告

如何说服企业做网站,网页设计毕业设计开题报告,学做网站卖东西去哪学,包头seo排名大白话React 中React.memo的作用,如何利用它进行组件性能优化? React.memo 是啥玩意儿 在 React 里,组件渲染是很频繁的事儿。每次父组件状态变了,子组件就可能会重新渲染,哪怕子组件的 props 压根儿没变化。这就好比…

大白话React 中React.memo的作用,如何利用它进行组件性能优化?

React.memo 是啥玩意儿

在 React 里,组件渲染是很频繁的事儿。每次父组件状态变了,子组件就可能会重新渲染,哪怕子组件的 props 压根儿没变化。这就好比你去超市,只买了瓶饮料,收银员却把整个货架都重新整理一遍,纯属浪费时间和精力。而 React.memo 就是来解决这个问题的,它能让组件“记着”之前的渲染结果,要是 props 没变化,就直接用之前的结果,不用重新渲染,这样能大大提升性能。

怎么用 React.memo

React.memo 是一个高阶组件,你把它套在你的组件外面,它就会帮你比较前后两次的 props。要是一样,就不重新渲染组件。下面咱来看看具体代码:

// 导入 React 库,因为要用到 React.memo
import React from 'react';// 定义一个简单的组件,这个组件接收一个 name 属性
const MyComponent = React.memo((props) => {// 打印日志,方便我们知道组件什么时候渲染了console.log('MyComponent 渲染了');// 返回一个简单的 JSX 元素,显示传入的 name 属性return <div>Hello, {props.name}!</div>;
});// 定义一个父组件
const ParentComponent = () => {// 定义一个状态变量 count,初始值为 0const [count, setCount] = React.useState(0);// 定义一个函数,用于增加 count 的值const handleClick = () => {setCount(count + 1);};return (<div>{/* 显示 count 的值 */}<p>Count: {count}</p>{/* 点击按钮,调用 handleClick 函数增加 count 的值 */}<button onClick={handleClick}>增加计数</button>{/* 使用 MyComponent 组件,传入 name 属性 */}<MyComponent name="World" /></div>);
};// 导出父组件,方便在其他地方使用
export default ParentComponent;

代码解释

  1. MyComponent 组件

    • 这是一个简单的函数组件,接收一个 name 属性。
    • React.memo 把它包起来,这样当 MyComponentprops 没变化时,就不会重新渲染。
    • 里面有个 console.log,每次渲染都会打印日志,方便我们观察。
  2. ParentComponent 组件

    • 有个 count 状态变量,初始值是 0。
    • 有个按钮,点击后会调用 handleClick 函数,让 count 的值加 1。
    • 里面使用了 MyComponent 组件,传入 name 属性为 World

使用场景

  • 纯展示组件:如果一个组件只是根据传入的 props 来展示内容,没有自己的状态,也不做什么副作用操作,那就可以用 React.memo 包起来。比如上面的 MyComponent,它只根据 name 属性来显示内容。
  • 频繁渲染的组件:要是一个组件在父组件每次渲染时都会跟着渲染,但它的 props 大部分时间都不变,那就用 React.memo 优化一下。比如列表里的每个列表项组件。

注意事项

  • React.memo 只比较 props 的浅层次变化。要是 props 里有对象或者数组,而且这些对象或数组的引用变了,哪怕里面的值没变,组件也会重新渲染。
  • 要是你需要自定义比较逻辑,可以给 React.memo 传入第二个参数,它是一个函数,用来比较前后两次的 props
// 自定义比较函数
const areEqual = (prevProps, nextProps) => {// 这里可以写自定义的比较逻辑return prevProps.name === nextProps.name;
};// 使用自定义比较函数的 MyComponent
const MyComponentWithCustomCompare = React.memo((props) => {console.log('MyComponentWithCustomCompare 渲染了');return <div>Hello, {props.name}!</div>;
}, areEqual);

这样,你就可以根据自己的需求来控制组件是否重新渲染啦。

http://www.dtcms.com/wzjs/835347.html

相关文章:

  • 洛阳网站建站云南网站做的好的公司哪家好
  • 平台网站建设协议建立网站的基本流程有哪些步骤
  • 广告发布包括哪些关于seo关键词选择有哪些方法
  • 网站 内容 营销沧州网站推广优化
  • 有域名怎么做公司网站wordpress 4.1分页
  • 什么是自适应网站优化步骤
  • 网站腾讯备案吗国家信息公示系统官网
  • 旅游论坛网站建设网站建设的目的与意义是什么意思
  • 个人域名备案做企业网站最新国际军事新闻
  • 网站建设的客户在哪里定制系统软件开发
  • 个人网站建设方案模板建站工具哪个好用
  • 仿做网站要多少钱seo优化包括哪些内容
  • 成都flash互动网站开发免费链接转换短网址
  • 正规的企业网站建设公司深圳西乡建网站
  • 做销售的 都有什么网站一个人可以建设几个网站
  • 网站运营团队管理广州广告公司
  • 书写网站建设策划书wordpress 内页打不开
  • 南京地区网站开发房产网名字叫啥好听
  • 学校网站怎么做的好处wordpress有中文版没
  • 深圳建站网站网站公司天津网站开发价格
  • 有没有做家具特卖的网站网站网站建设网站
  • 佛山做外贸网站如何怎么开店
  • 上海创意型网站建设姑苏区住房和建设局网站
  • 网站浮动窗口怎么设置国际网站怎么做
  • 爱墙 网站怎么做网站用模板为什么不利于seo推广
  • 网站开发用什么软件用手机做网站的流程
  • 厦门做网站的公司有哪些网站建设刂搜金手指下拉贰肆
  • 淘客建站程序wordpress怎么做
  • 鲜花网站建设的总体目标网站集群建设要求
  • 阿里云二级域名建设网站友情链接的英文